|
- unit uengShaderFileConstants;
-
- {$mode objfpc}{$H+}
- {$I uengShaderFile.inc}
-
- interface
-
- const
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- PRECOMPILER_STATEMENT_BEGIN = '{';
- PRECOMPILER_STATEMENT_END = '}';
-
- TOKEN_CHAR_BEGIN = '{';
- TOKEN_CHAR_END = '}';
- TOKEN_CHAR_QUOTE = '''';
- TOKEN_CHAR_IDENT = '$';
- TOKEN_CHAR_COMMENT = '.';
- TOKEN_CHAR_COMMANT_END = ';';
- TOKEN_CHAR_SCOPE_BEGIN = '{';
- TOKEN_CHAR_SCOPE_END = '}';
-
- UNKNOWN_FILENAME = 'unknown file';
- TOKEN_LINE_BREAK = sLineBreak;
- TOKEN_NONE = '[none]';
-
- TOKEN_CLASS = TOKEN_CHAR_IDENT + 'CLASS'; //{$CLASS PhongLight $EXTENDS Normal Glow}
- TOKEN_EXTENDS = TOKEN_CHAR_IDENT + 'EXTENDS';
- TOKEN_INHERITED = TOKEN_CHAR_IDENT + 'INHERITED'; //{$INHERITED BaseClass MethodName 'param1' 'param2' $INLINE}
-
- TOKEN_INCLUDE = TOKEN_CHAR_IDENT + 'INCLUDE'; //{$INCLUDE 'Normal.frag'}
-
- TOKEN_META = TOKEN_CHAR_IDENT + 'META'; //{$META 'Fuu' 'Bar'}
- TOKEN_VERSION = TOKEN_CHAR_IDENT + 'VERSION'; //{$META $VERSION 'version'}
- TOKEN_EXTENSION = TOKEN_CHAR_IDENT + 'EXTENSION'; //{$META $EXTENSION 'GL_ARB_geometry_shader4' 'enable'}
- TOKEN_LAYOUT = TOKEN_CHAR_IDENT + 'LAYOUT'; //{$META $LAYOUT '(line_strip, max_vertices = 6) out'}
-
- TOKEN_PROPERTY = TOKEN_CHAR_IDENT + 'PROPERTY'; //{$PROPERTY InvertRoughmap 'false'}
- TOKEN_STATIC = TOKEN_CHAR_IDENT + 'STATIC'; //{$STATIC RENDER_FACE_FRONT '0'}
- TOKEN_ECHO = TOKEN_CHAR_IDENT + 'ECHO'; //{$ECHO InvertRoughmap}
-
- TOKEN_VAR = TOKEN_CHAR_IDENT + 'VAR'; //{$VAR 'float' 'refractivity' '0.0'}
- TOKEN_VARYING = TOKEN_CHAR_IDENT + 'VARYING'; //{$VARYING 'vec3' 'vVertex'}
- TOKEN_UNIFORM = TOKEN_CHAR_IDENT + 'UNIFORM'; //{$UNIFORM 'sampler2D' 'uShadowMap'}
- TOKEN_CONST = TOKEN_CHAR_IDENT + 'CONST'; //{$CONST 'int' 'test' '0'}
-
- TOKEN_CALL = TOKEN_CHAR_IDENT + 'CALL'; //{$CALL CalcLight}
- TOKEN_PROC = TOKEN_CHAR_IDENT + 'PROC'; //{$PROC CalcLight} Code... {$END}
- TOKEN_FUNC = TOKEN_CHAR_IDENT + 'FUNC'; //{$FUND 'float' 'ShadowPoisson' 'vec2' 'shadowMapST' 'float' 'receiver'} Code... {$END}
- TOKEN_MAIN = TOKEN_CHAR_IDENT + 'MAIN';
- TOKEN_INLINE = TOKEN_CHAR_IDENT + 'INLINE'; //{$PROC CalcLight $INLINE} Code... {$END}
-
- TOKEN_IF = TOKEN_CHAR_IDENT + 'IF'; //{$IF PhongLight = '0'} Code ... {$END}
- TOKEN_ELIF = TOKEN_CHAR_IDENT + 'ELIF';
- TOKEN_ELSE = TOKEN_CHAR_IDENT + 'ELSE';
- TOKEN_END = TOKEN_CHAR_IDENT + 'END';
-
- TOKEN_INFO = TOKEN_CHAR_IDENT + 'INFO'; //{$INFO 'message'}
- TOKEN_WARNING = TOKEN_CHAR_IDENT + 'WARNING'; //{$WARNING 'message'}
- TOKEN_ERROR = TOKEN_CHAR_IDENT + 'ERROR'; //{$ERROR 'message'}
- TOKEN_THROW = TOKEN_CHAR_IDENT + 'THROW'; //{$THROW 'message'}
-
- TOKEN_OP_LOGICAL_NOT = TOKEN_CHAR_IDENT + 'NOT'; //{$IF $NOT test}
- TOKEN_OP_LOGICAL_OR = TOKEN_CHAR_IDENT + 'OR'; //{$IF test1 $OR test2}
- TOKEN_OP_LOGICAL_AND = TOKEN_CHAR_IDENT + 'AND'; //{$IF test1 $AND test2}
- TOKEN_OP_LOGICAL_XOR = TOKEN_CHAR_IDENT + 'XOR'; //{$IF test1 $XOR test2}
- TOKEN_OP_ADD = '+'; //{$IF test1 + test2}
- TOKEN_OP_SUBTRACT = '-'; //{$IF test1 - test2}
- TOKEN_OP_MULTIPLY = '*'; //{$IF test1 * test2}
- TOKEN_OP_DIVIDE = '/'; //{$IF test1 / test2}
- TOKEN_OP_EQUALS = '='; //{$IF test1 = test2}
- TOKEN_OP_LESSER = '<'; //{$IF test1 < test2}
- TOKEN_OP_GREATER = '>'; //{$IF test1 > test2}
- TOKEN_OP_LEQUALS = '<='; //{$IF test1 <= test2}
- TOKEN_OP_GEQUALS = '>='; //{$IF test1 >= test2}
- TOKEN_OP_UNEQUALS = '<>'; //{$IF test1 <> test2}
- TOKEN_OP_BINARY_OR = '|'; //{$IF test1 | test2}
- TOKEN_OP_BINARY_AND = '&'; //{$IF test1 & test2}
- TOKEN_OP_BINARY_XOR = '^'; //{$IF test1 ^ test2}
- TOKEN_OP_BINARY_NOT = '!'; //{$IF !test1}
- TOKEN_OP_GROUP_BEGIN = '('; //{$IF (test1 $OR test2) >= '0'}
- TOKEN_OP_GROUP_END = ')';
-
- VALID_IDENT_CHARS = ['A'..'Z', 'a'..'z', '0'..'9', '_'];
- VALID_TOKEN_CHARS = ['$'] + VALID_IDENT_CHARS;
- TOKEN_SPLIT_CHARS = [' ', #9, TOKEN_OP_GROUP_BEGIN, TOKEN_OP_GROUP_END];
- COMMAND_END_TOKENS = [TOKEN_CHAR_COMMANT_END, TOKEN_CHAR_SCOPE_BEGIN, TOKEN_CHAR_SCOPE_END];
-
- LAYOUT_MIN_VERSION = 150;
- VERSION_EXTRA_COMPAT = 'compatibility'; //{$META $VERSION 'compatibility'}
-
- implementation
-
- end.
|