Commit 28043ba7 by Nicolas Capens Committed by Shannon Woods

Add 3D samplers to the lexer/parser.

TRAC #23365 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
parent 73f5bf61
...@@ -155,8 +155,10 @@ O [0-7] ...@@ -155,8 +155,10 @@ O [0-7]
"sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); } "sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
"sampler2DRect" { return SAMPLER2DRECT; } "sampler2DRect" { return SAMPLER2DRECT; }
"isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); } "isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
"isampler3D" { return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
"isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); } "isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
"usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); } "usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); }
"usampler3D" { return ES2_ident_ES3_keyword(context, USAMPLER3D); }
"usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); } "usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
"struct" { return STRUCT; } "struct" { return STRUCT; }
......
...@@ -131,7 +131,8 @@ extern void yyerror(TParseContext* context, const char* reason); ...@@ -131,7 +131,8 @@ 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 ISAMPLER2D ISAMPLERCUBE USAMPLER2D USAMPLERCUBE %token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT
%token <lex> ISAMPLER2D ISAMPLER3D ISAMPLERCUBE USAMPLER2D USAMPLER3D USAMPLERCUBE
%token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW %token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW
%token <lex> LAYOUT %token <lex> LAYOUT
...@@ -1509,6 +1510,10 @@ type_specifier_nonarray ...@@ -1509,6 +1510,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtSampler2D, qual, $1.line); $$.setBasic(EbtSampler2D, qual, $1.line);
} }
| SAMPLER3D {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtSampler3D, qual, $1.line);
}
| SAMPLERCUBE { | SAMPLERCUBE {
FRAG_VERT_ONLY("samplerCube", $1.line); FRAG_VERT_ONLY("samplerCube", $1.line);
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -1518,6 +1523,10 @@ type_specifier_nonarray ...@@ -1518,6 +1523,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISampler2D, qual, $1.line); $$.setBasic(EbtISampler2D, qual, $1.line);
} }
| ISAMPLER3D {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISampler3D, qual, $1.line);
}
| ISAMPLERCUBE { | ISAMPLERCUBE {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtISamplerCube, qual, $1.line); $$.setBasic(EbtISamplerCube, qual, $1.line);
...@@ -1526,6 +1535,10 @@ type_specifier_nonarray ...@@ -1526,6 +1535,10 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSampler2D, qual, $1.line); $$.setBasic(EbtUSampler2D, qual, $1.line);
} }
| USAMPLER3D {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSampler3D, qual, $1.line);
}
| USAMPLERCUBE { | USAMPLERCUBE {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUSamplerCube, qual, $1.line); $$.setBasic(EbtUSamplerCube, qual, $1.line);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -105,65 +105,67 @@ extern int yydebug; ...@@ -105,65 +105,67 @@ extern int yydebug;
SAMPLER_EXTERNAL_OES = 314, SAMPLER_EXTERNAL_OES = 314,
SAMPLER2DRECT = 315, SAMPLER2DRECT = 315,
ISAMPLER2D = 316, ISAMPLER2D = 316,
ISAMPLERCUBE = 317, ISAMPLER3D = 317,
USAMPLER2D = 318, ISAMPLERCUBE = 318,
USAMPLERCUBE = 319, USAMPLER2D = 319,
SAMPLER3D = 320, USAMPLER3D = 320,
SAMPLER3DRECT = 321, USAMPLERCUBE = 321,
SAMPLER2DSHADOW = 322, SAMPLER3D = 322,
LAYOUT = 323, SAMPLER3DRECT = 323,
IDENTIFIER = 324, SAMPLER2DSHADOW = 324,
TYPE_NAME = 325, LAYOUT = 325,
FLOATCONSTANT = 326, IDENTIFIER = 326,
INTCONSTANT = 327, TYPE_NAME = 327,
UINTCONSTANT = 328, FLOATCONSTANT = 328,
BOOLCONSTANT = 329, INTCONSTANT = 329,
FIELD_SELECTION = 330, UINTCONSTANT = 330,
LEFT_OP = 331, BOOLCONSTANT = 331,
RIGHT_OP = 332, FIELD_SELECTION = 332,
INC_OP = 333, LEFT_OP = 333,
DEC_OP = 334, RIGHT_OP = 334,
LE_OP = 335, INC_OP = 335,
GE_OP = 336, DEC_OP = 336,
EQ_OP = 337, LE_OP = 337,
NE_OP = 338, GE_OP = 338,
AND_OP = 339, EQ_OP = 339,
OR_OP = 340, NE_OP = 340,
XOR_OP = 341, AND_OP = 341,
MUL_ASSIGN = 342, OR_OP = 342,
DIV_ASSIGN = 343, XOR_OP = 343,
ADD_ASSIGN = 344, MUL_ASSIGN = 344,
MOD_ASSIGN = 345, DIV_ASSIGN = 345,
LEFT_ASSIGN = 346, ADD_ASSIGN = 346,
RIGHT_ASSIGN = 347, MOD_ASSIGN = 347,
AND_ASSIGN = 348, LEFT_ASSIGN = 348,
XOR_ASSIGN = 349, RIGHT_ASSIGN = 349,
OR_ASSIGN = 350, AND_ASSIGN = 350,
SUB_ASSIGN = 351, XOR_ASSIGN = 351,
LEFT_PAREN = 352, OR_ASSIGN = 352,
RIGHT_PAREN = 353, SUB_ASSIGN = 353,
LEFT_BRACKET = 354, LEFT_PAREN = 354,
RIGHT_BRACKET = 355, RIGHT_PAREN = 355,
LEFT_BRACE = 356, LEFT_BRACKET = 356,
RIGHT_BRACE = 357, RIGHT_BRACKET = 357,
DOT = 358, LEFT_BRACE = 358,
COMMA = 359, RIGHT_BRACE = 359,
COLON = 360, DOT = 360,
EQUAL = 361, COMMA = 361,
SEMICOLON = 362, COLON = 362,
BANG = 363, EQUAL = 363,
DASH = 364, SEMICOLON = 364,
TILDE = 365, BANG = 365,
PLUS = 366, DASH = 366,
STAR = 367, TILDE = 367,
SLASH = 368, PLUS = 368,
PERCENT = 369, STAR = 369,
LEFT_ANGLE = 370, SLASH = 370,
RIGHT_ANGLE = 371, PERCENT = 371,
VERTICAL_BAR = 372, LEFT_ANGLE = 372,
CARET = 373, RIGHT_ANGLE = 373,
AMPERSAND = 374, VERTICAL_BAR = 374,
QUESTION = 375 CARET = 375,
AMPERSAND = 376,
QUESTION = 377
}; };
#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