From 34b94aec966ab6a7df9bed3256adbefc6383d436 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 19 Nov 2024 17:13:38 +0900 Subject: [PATCH] [qfcc] Set binding and set attributes Not sure if this will work, but it does fix some error and notice noise. --- tools/qfcc/source/glsl-layout.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/qfcc/source/glsl-layout.c b/tools/qfcc/source/glsl-layout.c index 10c0ecc40..147a6bf87 100644 --- a/tools/qfcc/source/glsl-layout.c +++ b/tools/qfcc/source/glsl-layout.c @@ -102,8 +102,16 @@ static void glsl_layout_binding (specifier_t spec, const expr_t *qual_name, const expr_t *val) { - notice (qual_name, "%s %s", expr_string (qual_name), - get_value_string (val->value)); + const char *name = expr_string (qual_name); + set_attribute (&spec.sym->attributes, name, val); +} + +static void +glsl_layout_set (specifier_t spec, const expr_t *qual_name, + const expr_t *val) +{ + const char *name = expr_string (qual_name); + set_attribute (&spec.sym->attributes, name, val); } static void @@ -204,7 +212,7 @@ static layout_qual_t layout_qualifiers[] = { .if_mask = I(uniform)|I(buffer), }, { .name = "set", - .apply = E(nullptr), + .apply = E(glsl_layout_set), .obj_mask = D(var)|D(block), .var_type = V(opaque), .if_mask = I(uniform)|I(buffer),