1) Improve error recovery from arrays sized with a non constant. 2) Add double vectors to the lexer. 3) Default to vertex shaders for unrecognized file name suffixes.
Also fix issue where the keyword "shared" conflicts with the layout qualifier identifier "shared" by allowing the keyword in the layout qualifier identifier list. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@19948 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
fabf3e4058
commit
e95ecc54fa
@ -216,7 +216,7 @@ int C_DECL main(int argc, char* argv[])
|
||||
static EShLanguage FindLanguage(char *name)
|
||||
{
|
||||
if (!name)
|
||||
return EShLangFragment;
|
||||
return EShLangVertex;
|
||||
|
||||
char *ext = strrchr(name, '.');
|
||||
|
||||
@ -225,10 +225,9 @@ static EShLanguage FindLanguage(char *name)
|
||||
|
||||
if (ext = strrchr(name, '.')) {
|
||||
if (strncmp(ext, ".frag", 4) == 0) return EShLangFragment;
|
||||
if (strncmp(ext, ".vert", 4) == 0) return EShLangVertex;
|
||||
}
|
||||
|
||||
return EShLangFragment;
|
||||
return EShLangVertex;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -712,6 +712,7 @@ bool TParseContext::arraySizeErrorCheck(int line, TIntermTyped* expr, int& size)
|
||||
TIntermConstantUnion* constant = expr->getAsConstantUnion();
|
||||
if (constant == 0 || constant->getBasicType() != EbtInt) {
|
||||
error(line, "array size must be a constant integer expression", "", "");
|
||||
size = 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -181,6 +181,9 @@ TSourceLoc yylineno;
|
||||
"vec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC2); }
|
||||
"vec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC3); }
|
||||
"vec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC4); }
|
||||
"dvec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC2); }
|
||||
"dvec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC3); }
|
||||
"dvec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC4); }
|
||||
"ivec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC2); }
|
||||
"ivec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC3); }
|
||||
"ivec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC4); }
|
||||
@ -301,9 +304,6 @@ TSourceLoc yylineno;
|
||||
"fvec2" { PaReservedWord(); return 0; }
|
||||
"fvec3" { PaReservedWord(); return 0; }
|
||||
"fvec4" { PaReservedWord(); return 0; }
|
||||
"dvec2" { PaReservedWord(); return 0; }
|
||||
"dvec3" { PaReservedWord(); return 0; }
|
||||
"dvec4" { PaReservedWord(); return 0; }
|
||||
|
||||
"sampler3DRect" { PaReservedWord(); return 0; }
|
||||
|
||||
|
||||
@ -1598,6 +1598,8 @@ layout_qualifier_id
|
||||
}
|
||||
| IDENTIFIER EQUAL INTCONSTANT {
|
||||
}
|
||||
| SHARED {
|
||||
}
|
||||
;
|
||||
|
||||
precise_qualifier
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user