summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-02-12 21:28:59 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-02-12 21:28:59 +0100
commit70a28123dd7b56f33dafc8dc9121e5a5a6161b00 (patch)
treec65ee8ac0ced1aea9c0e163f254a0aa099a2b9c2
parent080d9b17a576820a8d86f6fbfeb2b5ffd4175da4 (diff)
adding vao attrs
-rw-r--r--src/text.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/text.cc b/src/text.cc
index 57ef433..cc06508 100644
--- a/src/text.cc
+++ b/src/text.cc
@@ -1,5 +1,6 @@
#include "text.h"
+#include "cglm/types.h"
#include "freetype/freetype.h"
#include "shaders.h"
#include "utils.h"
@@ -13,6 +14,28 @@ static void font_context_sampler_desc(struct sg_sampler_desc* desc) {
desc->wrap_v = SG_WRAP_CLAMP_TO_EDGE;
}
+static void font_context_layout_attr_pos(
+ struct sg_vertex_attr_state* attr,
+ struct sg_vertex_buffer_layout_state* layout) {
+ wayc_notnull(attr);
+ wayc_notnull(layout);
+
+ attr->format = SG_VERTEXFORMAT_FLOAT2;
+ attr->buffer_index = 0;
+ layout->stride = sizeof(vec2);
+}
+
+static void font_context_layout_attr_uv(
+ struct sg_vertex_attr_state* attr,
+ struct sg_vertex_buffer_layout_state* layout) {
+ wayc_notnull(attr);
+ wayc_notnull(layout);
+
+ attr->format = SG_VERTEXFORMAT_FLOAT2;
+ attr->buffer_index = 0;
+ layout->stride = sizeof(vec2);
+}
+
static void font_context_pipeline_desc(struct sg_pipeline_desc* desc) {
wayc_notnull(desc);
@@ -20,6 +43,13 @@ static void font_context_pipeline_desc(struct sg_pipeline_desc* desc) {
text_shader_desc(sg_query_backend());
sg_shader shader = sg_make_shader(shader_desc);
+ sg_vertex_layout_state vertex_layout = {};
+ font_context_layout_attr_pos(&vertex_layout.attrs[0],
+ &vertex_layout.buffers[0]);
+ font_context_layout_attr_uv(&vertex_layout.attrs[1],
+ &vertex_layout.buffers[0]);
+
+ desc->layout = vertex_layout;
desc->shader = shader;
}