From 22d3b62b127a22d1653389744993065da1521690 Mon Sep 17 00:00:00 2001 From: Noah Metz Date: Fri, 18 Oct 2024 10:02:39 -0600 Subject: [PATCH] Fixed struct alignment to align vec3s to 16 bytes --- client/include/ui.h | 9 ++++++--- client/shader_src/ui_colored_rect.vert | 2 +- client/shader_src/ui_text.comp | 7 +++---- client/shader_src/ui_text.vert | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/client/include/ui.h b/client/include/ui.h index 762793b..8fab659 100644 --- a/client/include/ui.h +++ b/client/include/ui.h @@ -20,7 +20,8 @@ typedef struct GraphicsPipelineStruct { } GraphicsPipeline; typedef struct ColoredRectStruct { - vec4 pos; + vec3 pos; + uint32_t padding0; vec2 size; vec4 color; } ColoredRect; @@ -30,7 +31,8 @@ typedef struct UIUniformStruct { } UIUniform; typedef struct StringStruct { - vec4 pos; + vec3 pos; + uint32_t padding0; vec4 color; float size; uint32_t offset; @@ -52,7 +54,8 @@ typedef struct StringPointersStruct { } StringPointers; typedef struct CharacterStruct { - vec4 pos; + vec3 pos; + uint32_t padding0; vec4 color; float size; uint32_t code; diff --git a/client/shader_src/ui_colored_rect.vert b/client/shader_src/ui_colored_rect.vert index 27665cb..83db32e 100644 --- a/client/shader_src/ui_colored_rect.vert +++ b/client/shader_src/ui_colored_rect.vert @@ -6,7 +6,7 @@ layout(set = 0, binding = 0) uniform UIUniform { } ubo; struct Rect { - vec4 pos; + vec3 pos; vec2 size; vec4 color; }; diff --git a/client/shader_src/ui_text.comp b/client/shader_src/ui_text.comp index 0597ae0..18d3816 100644 --- a/client/shader_src/ui_text.comp +++ b/client/shader_src/ui_text.comp @@ -10,14 +10,14 @@ struct Symbol { }; struct Character { - vec4 pos; + vec3 pos; vec4 color; float size; uint code; }; struct String { - vec4 pos; + vec3 pos; vec4 color; float size; uint offset; @@ -75,11 +75,10 @@ void main() { float x = 0; for(uint i = 0; i < string.len; i++) { Symbol symbol = font.symbol_list.symbols[push.pointers.codes.codes[string.offset + i]]; - push.pointers.characters.characters[buffer_pos + i].pos = vec4(string.pos.xyz + vec3(x, 0, 0), 0); + push.pointers.characters.characters[buffer_pos + i].pos = string.pos + vec3(x, 0, 0); x += string.size*symbol.advance/font.width; push.pointers.characters.characters[buffer_pos + i].size = string.size; push.pointers.characters.characters[buffer_pos + i].color = string.color; push.pointers.characters.characters[buffer_pos + i].code = push.pointers.codes.codes[string.offset + i]; } - // Write the characters to push.pointers.characters.characters[buffer_pos:buffer_pos+string.len) } diff --git a/client/shader_src/ui_text.vert b/client/shader_src/ui_text.vert index ec2687c..533550f 100644 --- a/client/shader_src/ui_text.vert +++ b/client/shader_src/ui_text.vert @@ -10,7 +10,7 @@ struct Symbol { }; struct Character { - vec4 pos; + vec3 pos; vec4 color; float size; uint code; @@ -68,7 +68,7 @@ void main() { fragUV = vec2(fragU, fragV); fragColor = character.color; - gl_Position = ubo.screen * vec4(vec3(x, y, 0.0) + character.pos.xyz, 1.0); + gl_Position = ubo.screen * vec4(vec3(x, y, 0.0) + character.pos, 1.0); code = character.code; }