From f6017294684dc91669c2e6891ee689c59194c284 Mon Sep 17 00:00:00 2001 From: matthew Date: Thu, 14 Aug 2025 17:16:04 +1000 Subject: [PATCH] set up nogc --- assets/shaders/gui.frag.spv | Bin 1336 -> 1496 bytes assets/shaders/gui.vert.spv | Bin 4148 -> 4444 bytes dub.json | 6 +- src/gears/game.d | 60 +++++++--- src/gears/main.d | 5 +- src/gears/platform.d | 17 ++- src/gears/vulkan.d | 197 +++++++++++++++++++++------------ src/gears/vulkan_funcs.d | 2 + src/shaders/gui.layout | 4 + src/shaders/gui.vert.glsl | 4 +- src/shared/alloc.d | 27 +++++ src/shared/{font.d => fonts.d} | 0 src/shared/includes.c | 2 + src/shared/util.d | 73 ++++-------- 14 files changed, 252 insertions(+), 145 deletions(-) rename src/shared/{font.d => fonts.d} (100%) diff --git a/assets/shaders/gui.frag.spv b/assets/shaders/gui.frag.spv index 6568e895a26c3e79b62465136be2dc434b782bd0..4f3a052d4c4bd0168f3221be7f2f878dc66ccec1 100644 GIT binary patch delta 232 zcmdnNb%UFinMs+Qft8Vgn}L@>ebD3WPd9+BrY3xFj*Jq!`F%V_*S`0htU%sl{ORdXslD zE;n=s%7An#0x=^H!}v;YJ~LP+6Oiu#GI?_#(|JZlrpbyd!kQpKIiS@b>qLN90ce;m TkmdwpkeD@;ueaHdg`E)q?@St0 delta 102 zcmcb?y@QLFnMs+Qft8Vgn}L@>XCkjDBlkpS&5Z?WjOwfmnhXpK&iQ%8C5d?@#XvS2 v0}EIT$Ydx=EoNY4U}n&s{FZU~<||AG7zH_j!XPcyKxJA$T6^hMCjw7!asnHTs_TPu~fH@6JMHRTt8$LF_;Zq6yVL1F}Pp|2>5uQPAaplBTK^!b@S z--j!%qkO;p5&d?T$C#&`;vkKDiq#ltGoi12q$z$L@)&jkU-lX3jM{*;>Su}U$Xi#i z7FJ#4`|VDm5u1wzEiMq$RvWH>T-fRouGl`eRO>5n0;K2B4zbtu%5ZA;Mhx^aZ{d?b zdY;;2Yy(t*rW8SM${k#>qj1VST=mlTLahmxJ_OWH7k>cZ)*JsCK8C^GGEewTAbp8{ hTfx2nT}Ltfv2J6}cHpnz0BF%!UPQj~e|gSn@CRG-Nw@$2 delta 327 zcmYk1Jx;?w5QX1nSz8vEB9Rr*VN)X7C=zlcS1H_Z0CEHhIvPZQ_-Q~|oDf6eI9G_A zYf#bVDv@|&ZNW<4&b&82tKB8r(@=NLd>Dm8gjm}!Rb88Bs@~Y2jy9+pt5elGKn)-! za>k%;V)Lt`bEY1x@3sJ(AV5{zc>Ur!IEq%ztr#!aDY|a%gUWj_c%dlBfJ{j0R!yD% z1k # include diff --git a/src/shared/util.d b/src/shared/util.d index 243852c..374755f 100644 --- a/src/shared/util.d +++ b/src/shared/util.d @@ -8,63 +8,38 @@ import core.simd; import std.conv; import std.string; -enum AtlasType +struct DynSlice(T) { - None = 0, - SoftMask, + T[][] slices; + u32 length; + u32 capacity; + u32 grow_size; } -enum YOrigin +DynSlice!(T) +CreateDynSlice(T)(u32 size) { - None = 0, - Bottom, + DynSlice!(T) dslice = { + slices: MAllocArray!(T[])(size), + length: 0, + capacity: size, + grow_size: size, + }; + + dslice.slices[0] = MAllocArray!(T)(size); + + return dslice; } -struct FontAtlas +u32 +Next(T)(DynSlice!(T)* slice) { - AtlasType type; - f32 size; - u32 width; - u32 height; - YOrigin y_origin; - f32 em_size; - f32 line_height; - f32 ascender; - f32 descender; - f32 underline_y; - f32 underline_thickness; - Glyph[] glyphs; -} + if (slice.length < slice.capacity) + { + + } -struct Glyph -{ - dchar ch; - f32 advance; - f32 plane_left; - f32 plane_bottom; - f32 plane_right; - f32 plane_top; - f32 atlas_left; - f32 atlas_bottom; - f32 atlas_right; - f32 atlas_top; -} - -struct TrackedSlice(T) -{ - T[] slice; - u32 free_index; -} - -alias TSlice = TrackedSlice; - -TSlice!(T) -InitTrackedSlice(T)(u32 length) -{ - TSlice!(T) tslice; - tslice.slice = AllocArray!(T[])(length); - - return tslice; + return 0; } void