Commit fc2e6b90 by Nicolas Capens Committed by Shannon Woods

Add 2D array samplers to the lexer/parser.

TRAC #23377 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
parent eceb50d3
...@@ -154,12 +154,15 @@ O [0-7] ...@@ -154,12 +154,15 @@ O [0-7]
"sampler3DRect" { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); } "sampler3DRect" { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
"sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); } "sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
"sampler2DRect" { return SAMPLER2DRECT; } "sampler2DRect" { return SAMPLER2DRECT; }
"sampler2DArray" { return ES2_ident_ES3_keyword(context, SAMPLER2DARRAY); }
"isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); } "isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
"isampler3D" { return ES2_ident_ES3_keyword(context, ISAMPLER3D); } "isampler3D" { return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
"isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); } "isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
"isampler2DArray" { return ES2_ident_ES3_keyword(context, ISAMPLER2DARRAY); }
"usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); } "usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); }
"usampler3D" { return ES2_ident_ES3_keyword(context, USAMPLER3D); } "usampler3D" { return ES2_ident_ES3_keyword(context, USAMPLER3D); }
"usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); } "usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
"usampler2DArray" { return ES2_ident_ES3_keyword(context, USAMPLER2DARRAY); }
"struct" { return STRUCT; } "struct" { return STRUCT; }
......
...@@ -131,8 +131,9 @@ extern void yyerror(TParseContext* context, const char* reason); ...@@ -131,8 +131,9 @@ extern void yyerror(TParseContext* context, const char* reason);
%token <lex> MATRIX2x3 MATRIX3x2 MATRIX2x4 MATRIX4x2 MATRIX3x4 MATRIX4x3 %token <lex> MATRIX2x3 MATRIX3x2 MATRIX2x4 MATRIX4x2 MATRIX3x4 MATRIX4x3
%token <lex> CENTROID FLAT SMOOTH %token <lex> CENTROID FLAT SMOOTH
%token <lex> STRUCT VOID_TYPE WHILE %token <lex> STRUCT VOID_TYPE WHILE
%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT %token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT SAMPLER2DARRAY
%token <lex> ISAMPLER2D ISAMPLER3D ISAMPLERCUBE USAMPLER2D USAMPLER3D USAMPLERCUBE %token <lex> ISAMPLER2D ISAMPLER3D ISAMPLERCUBE ISAMPLER2DARRAY
%token <lex> USAMPLER2D USAMPLER3D USAMPLERCUBE USAMPLER2DARRAY
%token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW %token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW
%token <lex> LAYOUT %token <lex> LAYOUT
...@@ -1519,6 +1520,10 @@ type_specifier_nonarray ...@@ -1519,6 +1520,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtSamplerCube, qual, $1.line); $$.setBasic(EbtSamplerCube, qual, $1.line);
} }
| SAMPLER2DARRAY {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtSampler2DArray, qual, $1.line);
}
| ISAMPLER2D { | ISAMPLER2D {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISampler2D, qual, $1.line); $$.setBasic(EbtISampler2D, qual, $1.line);
...@@ -1531,6 +1536,10 @@ type_specifier_nonarray ...@@ -1531,6 +1536,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISamplerCube, qual, $1.line); $$.setBasic(EbtISamplerCube, qual, $1.line);
} }
| ISAMPLER2DARRAY {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISampler2DArray, qual, $1.line);
}
| USAMPLER2D { | USAMPLER2D {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSampler2D, qual, $1.line); $$.setBasic(EbtUSampler2D, qual, $1.line);
...@@ -1543,6 +1552,10 @@ type_specifier_nonarray ...@@ -1543,6 +1552,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSamplerCube, qual, $1.line); $$.setBasic(EbtUSamplerCube, qual, $1.line);
} }
| USAMPLER2DARRAY {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSampler2DArray, qual, $1.line);
}
| SAMPLER_EXTERNAL_OES { | SAMPLER_EXTERNAL_OES {
if (!context->supportsExtension("GL_OES_EGL_image_external")) { if (!context->supportsExtension("GL_OES_EGL_image_external")) {
context->error($1.line, "unsupported type", "samplerExternalOES"); context->error($1.line, "unsupported type", "samplerExternalOES");
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -104,68 +104,71 @@ extern int yydebug; ...@@ -104,68 +104,71 @@ extern int yydebug;
SAMPLERCUBE = 313, SAMPLERCUBE = 313,
SAMPLER_EXTERNAL_OES = 314, SAMPLER_EXTERNAL_OES = 314,
SAMPLER2DRECT = 315, SAMPLER2DRECT = 315,
ISAMPLER2D = 316, SAMPLER2DARRAY = 316,
ISAMPLER3D = 317, ISAMPLER2D = 317,
ISAMPLERCUBE = 318, ISAMPLER3D = 318,
USAMPLER2D = 319, ISAMPLERCUBE = 319,
USAMPLER3D = 320, ISAMPLER2DARRAY = 320,
USAMPLERCUBE = 321, USAMPLER2D = 321,
SAMPLER3D = 322, USAMPLER3D = 322,
SAMPLER3DRECT = 323, USAMPLERCUBE = 323,
SAMPLER2DSHADOW = 324, USAMPLER2DARRAY = 324,
LAYOUT = 325, SAMPLER3D = 325,
IDENTIFIER = 326, SAMPLER3DRECT = 326,
TYPE_NAME = 327, SAMPLER2DSHADOW = 327,
FLOATCONSTANT = 328, LAYOUT = 328,
INTCONSTANT = 329, IDENTIFIER = 329,
UINTCONSTANT = 330, TYPE_NAME = 330,
BOOLCONSTANT = 331, FLOATCONSTANT = 331,
FIELD_SELECTION = 332, INTCONSTANT = 332,
LEFT_OP = 333, UINTCONSTANT = 333,
RIGHT_OP = 334, BOOLCONSTANT = 334,
INC_OP = 335, FIELD_SELECTION = 335,
DEC_OP = 336, LEFT_OP = 336,
LE_OP = 337, RIGHT_OP = 337,
GE_OP = 338, INC_OP = 338,
EQ_OP = 339, DEC_OP = 339,
NE_OP = 340, LE_OP = 340,
AND_OP = 341, GE_OP = 341,
OR_OP = 342, EQ_OP = 342,
XOR_OP = 343, NE_OP = 343,
MUL_ASSIGN = 344, AND_OP = 344,
DIV_ASSIGN = 345, OR_OP = 345,
ADD_ASSIGN = 346, XOR_OP = 346,
MOD_ASSIGN = 347, MUL_ASSIGN = 347,
LEFT_ASSIGN = 348, DIV_ASSIGN = 348,
RIGHT_ASSIGN = 349, ADD_ASSIGN = 349,
AND_ASSIGN = 350, MOD_ASSIGN = 350,
XOR_ASSIGN = 351, LEFT_ASSIGN = 351,
OR_ASSIGN = 352, RIGHT_ASSIGN = 352,
SUB_ASSIGN = 353, AND_ASSIGN = 353,
LEFT_PAREN = 354, XOR_ASSIGN = 354,
RIGHT_PAREN = 355, OR_ASSIGN = 355,
LEFT_BRACKET = 356, SUB_ASSIGN = 356,
RIGHT_BRACKET = 357, LEFT_PAREN = 357,
LEFT_BRACE = 358, RIGHT_PAREN = 358,
RIGHT_BRACE = 359, LEFT_BRACKET = 359,
DOT = 360, RIGHT_BRACKET = 360,
COMMA = 361, LEFT_BRACE = 361,
COLON = 362, RIGHT_BRACE = 362,
EQUAL = 363, DOT = 363,
SEMICOLON = 364, COMMA = 364,
BANG = 365, COLON = 365,
DASH = 366, EQUAL = 366,
TILDE = 367, SEMICOLON = 367,
PLUS = 368, BANG = 368,
STAR = 369, DASH = 369,
SLASH = 370, TILDE = 370,
PERCENT = 371, PLUS = 371,
LEFT_ANGLE = 372, STAR = 372,
RIGHT_ANGLE = 373, SLASH = 373,
VERTICAL_BAR = 374, PERCENT = 374,
CARET = 375, LEFT_ANGLE = 375,
AMPERSAND = 376, RIGHT_ANGLE = 376,
QUESTION = 377 VERTICAL_BAR = 377,
CARET = 378,
AMPERSAND = 379,
QUESTION = 380
}; };
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment