diff options
author | Brian Paul <[email protected]> | 2008-12-11 18:02:19 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-12-11 18:02:19 -0700 |
commit | 2dc3de016cd0306bf5b492ed781e824864788f11 (patch) | |
tree | 8e8489b0a3cea8f3ad980d3cd764521a1994f961 /src/mesa/shader/slang/slang_codegen.c | |
parent | e8f5c1a5e89fe43ddfa277d7392dcaf8ac1d6c88 (diff) |
mesa: checkpoint commit of GLSL 1.20 array syntax.
This allows things like float[3] x = float[3](1., 2., 3.);
Parsing and AST construction now. Codegen not working yet.
Diffstat (limited to 'src/mesa/shader/slang/slang_codegen.c')
-rw-r--r-- | src/mesa/shader/slang/slang_codegen.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c index 8abb642a728..9d6a9d7d1b2 100644 --- a/src/mesa/shader/slang/slang_codegen.c +++ b/src/mesa/shader/slang/slang_codegen.c @@ -2519,19 +2519,11 @@ _slang_gen_var_decl(slang_assemble_ctx *A, slang_variable *var) if (var->array_len > 0) { /* this is an array */ - /* cannot be const-qualified */ - if (var->type.qualifier == SLANG_QUAL_CONST) { - slang_info_log_error(A->log, "array '%s' cannot be const", - (char*) var->a_name); - return NULL; - } - else { - /* round up element size to mult of 4 */ - GLint sz = (n->Store->Size + 3) & ~3; - /* mult by array size */ - sz *= var->array_len; - n->Store->Size = sz; - } + /* round up the element size to a multiple of 4 */ + GLint sz = (n->Store->Size + 3) & ~3; + /* total size = element size * array length */ + sz *= var->array_len; + n->Store->Size = sz; } assert(n->Store->Size > 0); |