|
@@ -45,440 +45,440 @@ final class GlslKeywordLibrary {
|
|
KEYWORD, BUILTIN_FUNCTION, BUILTIN_VARIABLE, BASIC_TYPE, UNFINISHED;
|
|
KEYWORD, BUILTIN_FUNCTION, BUILTIN_VARIABLE, BASIC_TYPE, UNFINISHED;
|
|
}
|
|
}
|
|
|
|
|
|
- private static final Trie keywordsTrie = new Trie();
|
|
|
|
- private static final Trie builtinFunctionsTrie = new Trie();
|
|
|
|
- private static final Trie builtinVariablesTrie = new Trie();
|
|
|
|
- private static final Trie basicTypesTrie = new Trie();
|
|
|
|
|
|
+ private static final Trie keywords = new Trie();
|
|
|
|
+ private static final Trie builtinFunctions = new Trie();
|
|
|
|
+ private static final Trie builtinVariables = new Trie();
|
|
|
|
+ private static final Trie basicTypes = new Trie();
|
|
|
|
|
|
static {
|
|
static {
|
|
//keywords
|
|
//keywords
|
|
- keywordsTrie.insert("attribute");
|
|
|
|
- keywordsTrie.insert("const");
|
|
|
|
- keywordsTrie.insert("uniform");
|
|
|
|
- keywordsTrie.insert("varying");
|
|
|
|
- keywordsTrie.insert("buffer");
|
|
|
|
- keywordsTrie.insert("shared");
|
|
|
|
- keywordsTrie.insert("coherent");
|
|
|
|
- keywordsTrie.insert("volatile");
|
|
|
|
- keywordsTrie.insert("restrict");
|
|
|
|
- keywordsTrie.insert("readonly");
|
|
|
|
- keywordsTrie.insert("writeonly");
|
|
|
|
- keywordsTrie.insert("atomic_uint");
|
|
|
|
- keywordsTrie.insert("layout");
|
|
|
|
- keywordsTrie.insert("centroid");
|
|
|
|
- keywordsTrie.insert("flat");
|
|
|
|
- keywordsTrie.insert("smooth");
|
|
|
|
- keywordsTrie.insert("noperspective");
|
|
|
|
- keywordsTrie.insert("patch");
|
|
|
|
- keywordsTrie.insert("sample");
|
|
|
|
- keywordsTrie.insert("break");
|
|
|
|
- keywordsTrie.insert("continue");
|
|
|
|
- keywordsTrie.insert("do");
|
|
|
|
- keywordsTrie.insert("for");
|
|
|
|
- keywordsTrie.insert("while");
|
|
|
|
- keywordsTrie.insert("switch");
|
|
|
|
- keywordsTrie.insert("case");
|
|
|
|
- keywordsTrie.insert("default");
|
|
|
|
- keywordsTrie.insert("if");
|
|
|
|
- keywordsTrie.insert("else");
|
|
|
|
- keywordsTrie.insert("subroutine");
|
|
|
|
- keywordsTrie.insert("in");
|
|
|
|
- keywordsTrie.insert("out");
|
|
|
|
- keywordsTrie.insert("inout");
|
|
|
|
- keywordsTrie.insert("void");
|
|
|
|
- keywordsTrie.insert("true");
|
|
|
|
- keywordsTrie.insert("false");
|
|
|
|
- keywordsTrie.insert("invariant");
|
|
|
|
- keywordsTrie.insert("precise");
|
|
|
|
- keywordsTrie.insert("discard");
|
|
|
|
- keywordsTrie.insert("return");
|
|
|
|
|
|
+ keywords.insert("attribute");
|
|
|
|
+ keywords.insert("const");
|
|
|
|
+ keywords.insert("uniform");
|
|
|
|
+ keywords.insert("varying");
|
|
|
|
+ keywords.insert("buffer");
|
|
|
|
+ keywords.insert("shared");
|
|
|
|
+ keywords.insert("coherent");
|
|
|
|
+ keywords.insert("volatile");
|
|
|
|
+ keywords.insert("restrict");
|
|
|
|
+ keywords.insert("readonly");
|
|
|
|
+ keywords.insert("writeonly");
|
|
|
|
+ keywords.insert("atomic_uint");
|
|
|
|
+ keywords.insert("layout");
|
|
|
|
+ keywords.insert("centroid");
|
|
|
|
+ keywords.insert("flat");
|
|
|
|
+ keywords.insert("smooth");
|
|
|
|
+ keywords.insert("noperspective");
|
|
|
|
+ keywords.insert("patch");
|
|
|
|
+ keywords.insert("sample");
|
|
|
|
+ keywords.insert("break");
|
|
|
|
+ keywords.insert("continue");
|
|
|
|
+ keywords.insert("do");
|
|
|
|
+ keywords.insert("for");
|
|
|
|
+ keywords.insert("while");
|
|
|
|
+ keywords.insert("switch");
|
|
|
|
+ keywords.insert("case");
|
|
|
|
+ keywords.insert("default");
|
|
|
|
+ keywords.insert("if");
|
|
|
|
+ keywords.insert("else");
|
|
|
|
+ keywords.insert("subroutine");
|
|
|
|
+ keywords.insert("in");
|
|
|
|
+ keywords.insert("out");
|
|
|
|
+ keywords.insert("inout");
|
|
|
|
+ keywords.insert("void");
|
|
|
|
+ keywords.insert("true");
|
|
|
|
+ keywords.insert("false");
|
|
|
|
+ keywords.insert("invariant");
|
|
|
|
+ keywords.insert("precise");
|
|
|
|
+ keywords.insert("discard");
|
|
|
|
+ keywords.insert("return");
|
|
//primitives and other types
|
|
//primitives and other types
|
|
- basicTypesTrie.insert("float");
|
|
|
|
- basicTypesTrie.insert("double");
|
|
|
|
- basicTypesTrie.insert("int");
|
|
|
|
- basicTypesTrie.insert("bool");
|
|
|
|
- basicTypesTrie.insert("mat2");
|
|
|
|
- basicTypesTrie.insert("mat3");
|
|
|
|
- basicTypesTrie.insert("mat4");
|
|
|
|
- basicTypesTrie.insert("dmat2");
|
|
|
|
- basicTypesTrie.insert("dmat3");
|
|
|
|
- basicTypesTrie.insert("dmat4");
|
|
|
|
- basicTypesTrie.insert("mat2x2");
|
|
|
|
- basicTypesTrie.insert("mat2x3");
|
|
|
|
- basicTypesTrie.insert("mat2x4");
|
|
|
|
- basicTypesTrie.insert("dmat2x2");
|
|
|
|
- basicTypesTrie.insert("dmat2x3");
|
|
|
|
- basicTypesTrie.insert("dmat2x4");
|
|
|
|
- basicTypesTrie.insert("mat3x2");
|
|
|
|
- basicTypesTrie.insert("mat3x3");
|
|
|
|
- basicTypesTrie.insert("mat3x4");
|
|
|
|
- basicTypesTrie.insert("dmat3x2");
|
|
|
|
- basicTypesTrie.insert("dmat3x3");
|
|
|
|
- basicTypesTrie.insert("dmat3x4");
|
|
|
|
- basicTypesTrie.insert("mat4x2");
|
|
|
|
- basicTypesTrie.insert("mat4x3");
|
|
|
|
- basicTypesTrie.insert("mat4x4");
|
|
|
|
- basicTypesTrie.insert("dmat4x2");
|
|
|
|
- basicTypesTrie.insert("dmat4x3");
|
|
|
|
- basicTypesTrie.insert("dmat4x4");
|
|
|
|
- basicTypesTrie.insert("vec2");
|
|
|
|
- basicTypesTrie.insert("vec3");
|
|
|
|
- basicTypesTrie.insert("vec4");
|
|
|
|
- basicTypesTrie.insert("ivec2");
|
|
|
|
- basicTypesTrie.insert("ivec3");
|
|
|
|
- basicTypesTrie.insert("ivec4");
|
|
|
|
- basicTypesTrie.insert("bvec2");
|
|
|
|
- basicTypesTrie.insert("bvec3");
|
|
|
|
- basicTypesTrie.insert("bvec4");
|
|
|
|
- basicTypesTrie.insert("dvec2");
|
|
|
|
- basicTypesTrie.insert("dvec3");
|
|
|
|
- basicTypesTrie.insert("dvec4");
|
|
|
|
- basicTypesTrie.insert("uint");
|
|
|
|
- basicTypesTrie.insert("uvec2");
|
|
|
|
- basicTypesTrie.insert("uvec3");
|
|
|
|
- basicTypesTrie.insert("uvec4");
|
|
|
|
- basicTypesTrie.insert("lowp");
|
|
|
|
- basicTypesTrie.insert("mediump");
|
|
|
|
- basicTypesTrie.insert("highp");
|
|
|
|
- basicTypesTrie.insert("precision");
|
|
|
|
- basicTypesTrie.insert("sampler1D");
|
|
|
|
- basicTypesTrie.insert("sampler2D");
|
|
|
|
- basicTypesTrie.insert("sampler3D");
|
|
|
|
- basicTypesTrie.insert("samplerCube");
|
|
|
|
- basicTypesTrie.insert("sampler1DShadow");
|
|
|
|
- basicTypesTrie.insert("sampler2DShadow");
|
|
|
|
- basicTypesTrie.insert("samplerCubeShadow");
|
|
|
|
- basicTypesTrie.insert("sampler1DArray");
|
|
|
|
- basicTypesTrie.insert("sampler2DArray");
|
|
|
|
- basicTypesTrie.insert("sampler1DArrayShadow");
|
|
|
|
- basicTypesTrie.insert("sampler2DArrayShadow");
|
|
|
|
- basicTypesTrie.insert("isampler1D");
|
|
|
|
- basicTypesTrie.insert("isampler2D");
|
|
|
|
- basicTypesTrie.insert("isampler3D");
|
|
|
|
- basicTypesTrie.insert("isamplerCube");
|
|
|
|
- basicTypesTrie.insert("isampler1DArray");
|
|
|
|
- basicTypesTrie.insert("isampler2DArray");
|
|
|
|
- basicTypesTrie.insert("usampler1D");
|
|
|
|
- basicTypesTrie.insert("usampler2D");
|
|
|
|
- basicTypesTrie.insert("usampler3D");
|
|
|
|
- basicTypesTrie.insert("usamplerCube");
|
|
|
|
- basicTypesTrie.insert("usampler1DArray");
|
|
|
|
- basicTypesTrie.insert("usampler2DArray");
|
|
|
|
- basicTypesTrie.insert("sampler2DRect");
|
|
|
|
- basicTypesTrie.insert("sampler2DRectShadow");
|
|
|
|
- basicTypesTrie.insert("isampler2DRect");
|
|
|
|
- basicTypesTrie.insert("usampler2DRect");
|
|
|
|
- basicTypesTrie.insert("samplerBuffer");
|
|
|
|
- basicTypesTrie.insert("isamplerBuffer");
|
|
|
|
- basicTypesTrie.insert("usamplerBuffer");
|
|
|
|
- basicTypesTrie.insert("sampler2DMS");
|
|
|
|
- basicTypesTrie.insert("isampler2DMS");
|
|
|
|
- basicTypesTrie.insert("usampler2DMS");
|
|
|
|
- basicTypesTrie.insert("sampler2DMSArray");
|
|
|
|
- basicTypesTrie.insert("isampler2DMSArray");
|
|
|
|
- basicTypesTrie.insert("usampler2DMSArray");
|
|
|
|
- basicTypesTrie.insert("samplerCubeArray");
|
|
|
|
- basicTypesTrie.insert("samplerCubeArrayShadow");
|
|
|
|
- basicTypesTrie.insert("isamplerCubeArray");
|
|
|
|
- basicTypesTrie.insert("usamplerCubeArray");
|
|
|
|
- basicTypesTrie.insert("image1D");
|
|
|
|
- basicTypesTrie.insert("iimage1D");
|
|
|
|
- basicTypesTrie.insert("uimage1D");
|
|
|
|
- basicTypesTrie.insert("image2D");
|
|
|
|
- basicTypesTrie.insert("iimage2D");
|
|
|
|
- basicTypesTrie.insert("uimage2D");
|
|
|
|
- basicTypesTrie.insert("image3D");
|
|
|
|
- basicTypesTrie.insert("iimage3D");
|
|
|
|
- basicTypesTrie.insert("uimage3D");
|
|
|
|
- basicTypesTrie.insert("image2DRect");
|
|
|
|
- basicTypesTrie.insert("iimage2DRect");
|
|
|
|
- basicTypesTrie.insert("uimage2DRect");
|
|
|
|
- basicTypesTrie.insert("imageCube");
|
|
|
|
- basicTypesTrie.insert("iimageCube");
|
|
|
|
- basicTypesTrie.insert("uimageCube");
|
|
|
|
- basicTypesTrie.insert("imageBuffer");
|
|
|
|
- basicTypesTrie.insert("iimageBuffer");
|
|
|
|
- basicTypesTrie.insert("uimageBuffer");
|
|
|
|
- basicTypesTrie.insert("image1DArray");
|
|
|
|
- basicTypesTrie.insert("iimage1DArray");
|
|
|
|
- basicTypesTrie.insert("uimage1DArray");
|
|
|
|
- basicTypesTrie.insert("image2DArray");
|
|
|
|
- basicTypesTrie.insert("iimage2DArray");
|
|
|
|
- basicTypesTrie.insert("uimage2DArray");
|
|
|
|
- basicTypesTrie.insert("imageCubeArray");
|
|
|
|
- basicTypesTrie.insert("iimageCubeArray");
|
|
|
|
- basicTypesTrie.insert("uimageCubeArray");
|
|
|
|
- basicTypesTrie.insert("image2DMS");
|
|
|
|
- basicTypesTrie.insert("iimage2DMS");
|
|
|
|
- basicTypesTrie.insert("uimage2DMS");
|
|
|
|
- basicTypesTrie.insert("image2DMSArray");
|
|
|
|
- basicTypesTrie.insert("iimage2DMSArray");
|
|
|
|
- basicTypesTrie.insert("uimage2DMSArray");
|
|
|
|
- basicTypesTrie.insert("struct");
|
|
|
|
|
|
+ basicTypes.insert("float");
|
|
|
|
+ basicTypes.insert("double");
|
|
|
|
+ basicTypes.insert("int");
|
|
|
|
+ basicTypes.insert("bool");
|
|
|
|
+ basicTypes.insert("mat2");
|
|
|
|
+ basicTypes.insert("mat3");
|
|
|
|
+ basicTypes.insert("mat4");
|
|
|
|
+ basicTypes.insert("dmat2");
|
|
|
|
+ basicTypes.insert("dmat3");
|
|
|
|
+ basicTypes.insert("dmat4");
|
|
|
|
+ basicTypes.insert("mat2x2");
|
|
|
|
+ basicTypes.insert("mat2x3");
|
|
|
|
+ basicTypes.insert("mat2x4");
|
|
|
|
+ basicTypes.insert("dmat2x2");
|
|
|
|
+ basicTypes.insert("dmat2x3");
|
|
|
|
+ basicTypes.insert("dmat2x4");
|
|
|
|
+ basicTypes.insert("mat3x2");
|
|
|
|
+ basicTypes.insert("mat3x3");
|
|
|
|
+ basicTypes.insert("mat3x4");
|
|
|
|
+ basicTypes.insert("dmat3x2");
|
|
|
|
+ basicTypes.insert("dmat3x3");
|
|
|
|
+ basicTypes.insert("dmat3x4");
|
|
|
|
+ basicTypes.insert("mat4x2");
|
|
|
|
+ basicTypes.insert("mat4x3");
|
|
|
|
+ basicTypes.insert("mat4x4");
|
|
|
|
+ basicTypes.insert("dmat4x2");
|
|
|
|
+ basicTypes.insert("dmat4x3");
|
|
|
|
+ basicTypes.insert("dmat4x4");
|
|
|
|
+ basicTypes.insert("vec2");
|
|
|
|
+ basicTypes.insert("vec3");
|
|
|
|
+ basicTypes.insert("vec4");
|
|
|
|
+ basicTypes.insert("ivec2");
|
|
|
|
+ basicTypes.insert("ivec3");
|
|
|
|
+ basicTypes.insert("ivec4");
|
|
|
|
+ basicTypes.insert("bvec2");
|
|
|
|
+ basicTypes.insert("bvec3");
|
|
|
|
+ basicTypes.insert("bvec4");
|
|
|
|
+ basicTypes.insert("dvec2");
|
|
|
|
+ basicTypes.insert("dvec3");
|
|
|
|
+ basicTypes.insert("dvec4");
|
|
|
|
+ basicTypes.insert("uint");
|
|
|
|
+ basicTypes.insert("uvec2");
|
|
|
|
+ basicTypes.insert("uvec3");
|
|
|
|
+ basicTypes.insert("uvec4");
|
|
|
|
+ basicTypes.insert("lowp");
|
|
|
|
+ basicTypes.insert("mediump");
|
|
|
|
+ basicTypes.insert("highp");
|
|
|
|
+ basicTypes.insert("precision");
|
|
|
|
+ basicTypes.insert("sampler1D");
|
|
|
|
+ basicTypes.insert("sampler2D");
|
|
|
|
+ basicTypes.insert("sampler3D");
|
|
|
|
+ basicTypes.insert("samplerCube");
|
|
|
|
+ basicTypes.insert("sampler1DShadow");
|
|
|
|
+ basicTypes.insert("sampler2DShadow");
|
|
|
|
+ basicTypes.insert("samplerCubeShadow");
|
|
|
|
+ basicTypes.insert("sampler1DArray");
|
|
|
|
+ basicTypes.insert("sampler2DArray");
|
|
|
|
+ basicTypes.insert("sampler1DArrayShadow");
|
|
|
|
+ basicTypes.insert("sampler2DArrayShadow");
|
|
|
|
+ basicTypes.insert("isampler1D");
|
|
|
|
+ basicTypes.insert("isampler2D");
|
|
|
|
+ basicTypes.insert("isampler3D");
|
|
|
|
+ basicTypes.insert("isamplerCube");
|
|
|
|
+ basicTypes.insert("isampler1DArray");
|
|
|
|
+ basicTypes.insert("isampler2DArray");
|
|
|
|
+ basicTypes.insert("usampler1D");
|
|
|
|
+ basicTypes.insert("usampler2D");
|
|
|
|
+ basicTypes.insert("usampler3D");
|
|
|
|
+ basicTypes.insert("usamplerCube");
|
|
|
|
+ basicTypes.insert("usampler1DArray");
|
|
|
|
+ basicTypes.insert("usampler2DArray");
|
|
|
|
+ basicTypes.insert("sampler2DRect");
|
|
|
|
+ basicTypes.insert("sampler2DRectShadow");
|
|
|
|
+ basicTypes.insert("isampler2DRect");
|
|
|
|
+ basicTypes.insert("usampler2DRect");
|
|
|
|
+ basicTypes.insert("samplerBuffer");
|
|
|
|
+ basicTypes.insert("isamplerBuffer");
|
|
|
|
+ basicTypes.insert("usamplerBuffer");
|
|
|
|
+ basicTypes.insert("sampler2DMS");
|
|
|
|
+ basicTypes.insert("isampler2DMS");
|
|
|
|
+ basicTypes.insert("usampler2DMS");
|
|
|
|
+ basicTypes.insert("sampler2DMSArray");
|
|
|
|
+ basicTypes.insert("isampler2DMSArray");
|
|
|
|
+ basicTypes.insert("usampler2DMSArray");
|
|
|
|
+ basicTypes.insert("samplerCubeArray");
|
|
|
|
+ basicTypes.insert("samplerCubeArrayShadow");
|
|
|
|
+ basicTypes.insert("isamplerCubeArray");
|
|
|
|
+ basicTypes.insert("usamplerCubeArray");
|
|
|
|
+ basicTypes.insert("image1D");
|
|
|
|
+ basicTypes.insert("iimage1D");
|
|
|
|
+ basicTypes.insert("uimage1D");
|
|
|
|
+ basicTypes.insert("image2D");
|
|
|
|
+ basicTypes.insert("iimage2D");
|
|
|
|
+ basicTypes.insert("uimage2D");
|
|
|
|
+ basicTypes.insert("image3D");
|
|
|
|
+ basicTypes.insert("iimage3D");
|
|
|
|
+ basicTypes.insert("uimage3D");
|
|
|
|
+ basicTypes.insert("image2DRect");
|
|
|
|
+ basicTypes.insert("iimage2DRect");
|
|
|
|
+ basicTypes.insert("uimage2DRect");
|
|
|
|
+ basicTypes.insert("imageCube");
|
|
|
|
+ basicTypes.insert("iimageCube");
|
|
|
|
+ basicTypes.insert("uimageCube");
|
|
|
|
+ basicTypes.insert("imageBuffer");
|
|
|
|
+ basicTypes.insert("iimageBuffer");
|
|
|
|
+ basicTypes.insert("uimageBuffer");
|
|
|
|
+ basicTypes.insert("image1DArray");
|
|
|
|
+ basicTypes.insert("iimage1DArray");
|
|
|
|
+ basicTypes.insert("uimage1DArray");
|
|
|
|
+ basicTypes.insert("image2DArray");
|
|
|
|
+ basicTypes.insert("iimage2DArray");
|
|
|
|
+ basicTypes.insert("uimage2DArray");
|
|
|
|
+ basicTypes.insert("imageCubeArray");
|
|
|
|
+ basicTypes.insert("iimageCubeArray");
|
|
|
|
+ basicTypes.insert("uimageCubeArray");
|
|
|
|
+ basicTypes.insert("image2DMS");
|
|
|
|
+ basicTypes.insert("iimage2DMS");
|
|
|
|
+ basicTypes.insert("uimage2DMS");
|
|
|
|
+ basicTypes.insert("image2DMSArray");
|
|
|
|
+ basicTypes.insert("iimage2DMSArray");
|
|
|
|
+ basicTypes.insert("uimage2DMSArray");
|
|
|
|
+ basicTypes.insert("struct");
|
|
//builtin variables
|
|
//builtin variables
|
|
//compute shaders
|
|
//compute shaders
|
|
- builtinVariablesTrie.insert("gl_NumWorkGroups");
|
|
|
|
- builtinVariablesTrie.insert("gl_WorkGroupSize");
|
|
|
|
- builtinVariablesTrie.insert("gl_WorkGroupID");
|
|
|
|
- builtinVariablesTrie.insert("gl_LocalInvocationID");
|
|
|
|
- builtinVariablesTrie.insert("gl_GlobalInvocationID");
|
|
|
|
- builtinVariablesTrie.insert("gl_LocalInvocationIndex");
|
|
|
|
|
|
+ builtinVariables.insert("gl_NumWorkGroups");
|
|
|
|
+ builtinVariables.insert("gl_WorkGroupSize");
|
|
|
|
+ builtinVariables.insert("gl_WorkGroupID");
|
|
|
|
+ builtinVariables.insert("gl_LocalInvocationID");
|
|
|
|
+ builtinVariables.insert("gl_GlobalInvocationID");
|
|
|
|
+ builtinVariables.insert("gl_LocalInvocationIndex");
|
|
//vertex shaders
|
|
//vertex shaders
|
|
- builtinVariablesTrie.insert("gl_VertexID");
|
|
|
|
- builtinVariablesTrie.insert("gl_InstanceID");
|
|
|
|
- builtinVariablesTrie.insert("gl_Position");
|
|
|
|
|
|
+ builtinVariables.insert("gl_VertexID");
|
|
|
|
+ builtinVariables.insert("gl_InstanceID");
|
|
|
|
+ builtinVariables.insert("gl_Position");
|
|
//geometry shaders
|
|
//geometry shaders
|
|
- builtinVariablesTrie.insert("gl_PrimitiveIDIn");
|
|
|
|
- builtinVariablesTrie.insert("gl_Layer");
|
|
|
|
- builtinVariablesTrie.insert("gl_ViewportIndex");
|
|
|
|
|
|
+ builtinVariables.insert("gl_PrimitiveIDIn");
|
|
|
|
+ builtinVariables.insert("gl_Layer");
|
|
|
|
+ builtinVariables.insert("gl_ViewportIndex");
|
|
//tesselation shaders
|
|
//tesselation shaders
|
|
- builtinVariablesTrie.insert("gl_MaxPatchVertices");
|
|
|
|
- builtinVariablesTrie.insert("gl_PatchVerticesIn");
|
|
|
|
- builtinVariablesTrie.insert("gl_TessLevelOuter");
|
|
|
|
- builtinVariablesTrie.insert("gl_TessLevelInner");
|
|
|
|
- builtinVariablesTrie.insert("gl_TessCoord");
|
|
|
|
|
|
+ builtinVariables.insert("gl_MaxPatchVertices");
|
|
|
|
+ builtinVariables.insert("gl_PatchVerticesIn");
|
|
|
|
+ builtinVariables.insert("gl_TessLevelOuter");
|
|
|
|
+ builtinVariables.insert("gl_TessLevelInner");
|
|
|
|
+ builtinVariables.insert("gl_TessCoord");
|
|
//fragment shaders
|
|
//fragment shaders
|
|
- builtinVariablesTrie.insert("gl_FragCoord");
|
|
|
|
- builtinVariablesTrie.insert("gl_FrontFacing");
|
|
|
|
- builtinVariablesTrie.insert("gl_PointCoord");
|
|
|
|
- builtinVariablesTrie.insert("gl_SampleID");
|
|
|
|
- builtinVariablesTrie.insert("gl_SamplePosition");
|
|
|
|
- builtinVariablesTrie.insert("gl_SampleMaskIn");
|
|
|
|
- builtinVariablesTrie.insert("gl_Layer");
|
|
|
|
- builtinVariablesTrie.insert("gl_ViewportIndex");
|
|
|
|
- builtinVariablesTrie.insert("gl_FragColor");
|
|
|
|
|
|
+ builtinVariables.insert("gl_FragCoord");
|
|
|
|
+ builtinVariables.insert("gl_FrontFacing");
|
|
|
|
+ builtinVariables.insert("gl_PointCoord");
|
|
|
|
+ builtinVariables.insert("gl_SampleID");
|
|
|
|
+ builtinVariables.insert("gl_SamplePosition");
|
|
|
|
+ builtinVariables.insert("gl_SampleMaskIn");
|
|
|
|
+ builtinVariables.insert("gl_Layer");
|
|
|
|
+ builtinVariables.insert("gl_ViewportIndex");
|
|
|
|
+ builtinVariables.insert("gl_FragColor");
|
|
//general
|
|
//general
|
|
- builtinVariablesTrie.insert("gl_Position");
|
|
|
|
- builtinVariablesTrie.insert("gl_PointSize");
|
|
|
|
- builtinVariablesTrie.insert("gl_ClipDistance");
|
|
|
|
- builtinVariablesTrie.insert("gl_InvocationID");
|
|
|
|
- builtinVariablesTrie.insert("gl_PrimitiveID");
|
|
|
|
|
|
+ builtinVariables.insert("gl_Position");
|
|
|
|
+ builtinVariables.insert("gl_PointSize");
|
|
|
|
+ builtinVariables.insert("gl_ClipDistance");
|
|
|
|
+ builtinVariables.insert("gl_InvocationID");
|
|
|
|
+ builtinVariables.insert("gl_PrimitiveID");
|
|
//jme variables - this is why we build custom plugins :) (apart from existing being under GPL)
|
|
//jme variables - this is why we build custom plugins :) (apart from existing being under GPL)
|
|
- builtinVariablesTrie.insert("inPosition");
|
|
|
|
- builtinVariablesTrie.insert("inNormal");
|
|
|
|
- builtinVariablesTrie.insert("inColor");
|
|
|
|
- builtinVariablesTrie.insert("inTextCoord");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_ViewMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_ProjectionMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldViewMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldViewProjectionMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldNormalMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_NormalMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_ViewProjectionMatrix");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldMatrixInverseTranspose");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_ViewMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_ProjectionMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_ViewProjectionMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldViewMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_NormalMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_WorldViewProjectionMatrixInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_ViewPort");
|
|
|
|
- builtinVariablesTrie.insert("g_FrustumNearFar");
|
|
|
|
- builtinVariablesTrie.insert("g_Resolution");
|
|
|
|
- builtinVariablesTrie.insert("g_ResolutionInverse");
|
|
|
|
- builtinVariablesTrie.insert("g_Aspect");
|
|
|
|
- builtinVariablesTrie.insert("g_CameraPosition");
|
|
|
|
- builtinVariablesTrie.insert("g_CameraDirection");
|
|
|
|
- builtinVariablesTrie.insert("g_CameraLeft");
|
|
|
|
- builtinVariablesTrie.insert("g_CameraUp");
|
|
|
|
- builtinVariablesTrie.insert("g_Time");
|
|
|
|
- builtinVariablesTrie.insert("g_Tpf");
|
|
|
|
- builtinVariablesTrie.insert("g_FrameRate");
|
|
|
|
- builtinVariablesTrie.insert("g_LightDirection");
|
|
|
|
- builtinVariablesTrie.insert("g_LightPosition");
|
|
|
|
- builtinVariablesTrie.insert("g_LightColor");
|
|
|
|
- builtinVariablesTrie.insert("g_AmbientLightColor");
|
|
|
|
|
|
+ builtinVariables.insert("inPosition");
|
|
|
|
+ builtinVariables.insert("inNormal");
|
|
|
|
+ builtinVariables.insert("inColor");
|
|
|
|
+ builtinVariables.insert("inTextCoord");
|
|
|
|
+ builtinVariables.insert("g_WorldMatrix");
|
|
|
|
+ builtinVariables.insert("g_ViewMatrix");
|
|
|
|
+ builtinVariables.insert("g_ProjectionMatrix");
|
|
|
|
+ builtinVariables.insert("g_WorldViewMatrix");
|
|
|
|
+ builtinVariables.insert("g_WorldViewProjectionMatrix");
|
|
|
|
+ builtinVariables.insert("g_WorldNormalMatrix");
|
|
|
|
+ builtinVariables.insert("g_NormalMatrix");
|
|
|
|
+ builtinVariables.insert("g_ViewProjectionMatrix");
|
|
|
|
+ builtinVariables.insert("g_WorldMatrixInverseTranspose");
|
|
|
|
+ builtinVariables.insert("g_WorldMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_ViewMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_ProjectionMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_ViewProjectionMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_WorldViewMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_NormalMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_WorldViewProjectionMatrixInverse");
|
|
|
|
+ builtinVariables.insert("g_ViewPort");
|
|
|
|
+ builtinVariables.insert("g_FrustumNearFar");
|
|
|
|
+ builtinVariables.insert("g_Resolution");
|
|
|
|
+ builtinVariables.insert("g_ResolutionInverse");
|
|
|
|
+ builtinVariables.insert("g_Aspect");
|
|
|
|
+ builtinVariables.insert("g_CameraPosition");
|
|
|
|
+ builtinVariables.insert("g_CameraDirection");
|
|
|
|
+ builtinVariables.insert("g_CameraLeft");
|
|
|
|
+ builtinVariables.insert("g_CameraUp");
|
|
|
|
+ builtinVariables.insert("g_Time");
|
|
|
|
+ builtinVariables.insert("g_Tpf");
|
|
|
|
+ builtinVariables.insert("g_FrameRate");
|
|
|
|
+ builtinVariables.insert("g_LightDirection");
|
|
|
|
+ builtinVariables.insert("g_LightPosition");
|
|
|
|
+ builtinVariables.insert("g_LightColor");
|
|
|
|
+ builtinVariables.insert("g_AmbientLightColor");
|
|
//builtin functions
|
|
//builtin functions
|
|
- builtinFunctionsTrie.insert("radians");
|
|
|
|
- builtinFunctionsTrie.insert("degrees");
|
|
|
|
- builtinFunctionsTrie.insert("sin");
|
|
|
|
- builtinFunctionsTrie.insert("cos");
|
|
|
|
- builtinFunctionsTrie.insert("tan");
|
|
|
|
- builtinFunctionsTrie.insert("asin");
|
|
|
|
- builtinFunctionsTrie.insert("acos");
|
|
|
|
- builtinFunctionsTrie.insert("atan");
|
|
|
|
- builtinFunctionsTrie.insert("sinh");
|
|
|
|
- builtinFunctionsTrie.insert("cosh");
|
|
|
|
- builtinFunctionsTrie.insert("tanh");
|
|
|
|
- builtinFunctionsTrie.insert("asinh");
|
|
|
|
- builtinFunctionsTrie.insert("acosh");
|
|
|
|
- builtinFunctionsTrie.insert("atanh");
|
|
|
|
- builtinFunctionsTrie.insert("pow");
|
|
|
|
- builtinFunctionsTrie.insert("exp");
|
|
|
|
- builtinFunctionsTrie.insert("log");
|
|
|
|
- builtinFunctionsTrie.insert("exp2");
|
|
|
|
- builtinFunctionsTrie.insert("log2");
|
|
|
|
- builtinFunctionsTrie.insert("sqrt");
|
|
|
|
- builtinFunctionsTrie.insert("inversesqrt");
|
|
|
|
- builtinFunctionsTrie.insert("abs");
|
|
|
|
- builtinFunctionsTrie.insert("sign");
|
|
|
|
- builtinFunctionsTrie.insert("floor");
|
|
|
|
- builtinFunctionsTrie.insert("trunc");
|
|
|
|
- builtinFunctionsTrie.insert("round");
|
|
|
|
- builtinFunctionsTrie.insert("roundEven");
|
|
|
|
- builtinFunctionsTrie.insert("ceil");
|
|
|
|
- builtinFunctionsTrie.insert("fract");
|
|
|
|
- builtinFunctionsTrie.insert("mod");
|
|
|
|
- builtinFunctionsTrie.insert("modf");
|
|
|
|
- builtinFunctionsTrie.insert("min");
|
|
|
|
- builtinFunctionsTrie.insert("max");
|
|
|
|
- builtinFunctionsTrie.insert("clamp");
|
|
|
|
- builtinFunctionsTrie.insert("mix");
|
|
|
|
- builtinFunctionsTrie.insert("step");
|
|
|
|
- builtinFunctionsTrie.insert("smoothstep");
|
|
|
|
- builtinFunctionsTrie.insert("isnan");
|
|
|
|
- builtinFunctionsTrie.insert("isinf");
|
|
|
|
- builtinFunctionsTrie.insert("floatBitsToInt");
|
|
|
|
- builtinFunctionsTrie.insert("floatBitsToUInt");
|
|
|
|
- builtinFunctionsTrie.insert("intBitsToFloat");
|
|
|
|
- builtinFunctionsTrie.insert("uintBitsToFloat");
|
|
|
|
- builtinFunctionsTrie.insert("fma");
|
|
|
|
- builtinFunctionsTrie.insert("frexp");
|
|
|
|
- builtinFunctionsTrie.insert("packUnorm2x16");
|
|
|
|
- builtinFunctionsTrie.insert("packSnorm2x16");
|
|
|
|
- builtinFunctionsTrie.insert("packUnorm4x8");
|
|
|
|
- builtinFunctionsTrie.insert("packSnorm4x8");
|
|
|
|
- builtinFunctionsTrie.insert("unpackUnorm2x16");
|
|
|
|
- builtinFunctionsTrie.insert("unpackSnorm2x16");
|
|
|
|
- builtinFunctionsTrie.insert("unpackUnorm4x8");
|
|
|
|
- builtinFunctionsTrie.insert("unpackSnorm4x8");
|
|
|
|
- builtinFunctionsTrie.insert("packDouble2x32");
|
|
|
|
- builtinFunctionsTrie.insert("unpackDouble2x32");
|
|
|
|
- builtinFunctionsTrie.insert("packHalf2x16");
|
|
|
|
- builtinFunctionsTrie.insert("unpackHalf2x16");
|
|
|
|
- builtinFunctionsTrie.insert("length");
|
|
|
|
- builtinFunctionsTrie.insert("distance");
|
|
|
|
- builtinFunctionsTrie.insert("dot");
|
|
|
|
- builtinFunctionsTrie.insert("cross");
|
|
|
|
- builtinFunctionsTrie.insert("normalize");
|
|
|
|
- builtinFunctionsTrie.insert("ftransform");
|
|
|
|
- builtinFunctionsTrie.insert("faceforward");
|
|
|
|
- builtinFunctionsTrie.insert("reflect");
|
|
|
|
- builtinFunctionsTrie.insert("refract");
|
|
|
|
- builtinFunctionsTrie.insert("matrixCompMult");
|
|
|
|
- builtinFunctionsTrie.insert("outerProduct");
|
|
|
|
- builtinFunctionsTrie.insert("transpose");
|
|
|
|
- builtinFunctionsTrie.insert("determinant");
|
|
|
|
- builtinFunctionsTrie.insert("inverse");
|
|
|
|
- builtinFunctionsTrie.insert("lessThan");
|
|
|
|
- builtinFunctionsTrie.insert("lessThanEqual");
|
|
|
|
- builtinFunctionsTrie.insert("greaterThan");
|
|
|
|
- builtinFunctionsTrie.insert("greaterThanEqual");
|
|
|
|
- builtinFunctionsTrie.insert("equal");
|
|
|
|
- builtinFunctionsTrie.insert("notEqual");
|
|
|
|
- builtinFunctionsTrie.insert("any");
|
|
|
|
- builtinFunctionsTrie.insert("all");
|
|
|
|
- builtinFunctionsTrie.insert("not");
|
|
|
|
- builtinFunctionsTrie.insert("uaddCarry");
|
|
|
|
- builtinFunctionsTrie.insert("usubBorrow");
|
|
|
|
- builtinFunctionsTrie.insert("umulExtended");
|
|
|
|
- builtinFunctionsTrie.insert("imulExtended");
|
|
|
|
- builtinFunctionsTrie.insert("bitfieldExtract");
|
|
|
|
- builtinFunctionsTrie.insert("bitfieldInsert");
|
|
|
|
- builtinFunctionsTrie.insert("bitfieldReverse");
|
|
|
|
- builtinFunctionsTrie.insert("bitCount");
|
|
|
|
- builtinFunctionsTrie.insert("findLSB");
|
|
|
|
- builtinFunctionsTrie.insert("findMSB");
|
|
|
|
- builtinFunctionsTrie.insert("textureSize");
|
|
|
|
- builtinFunctionsTrie.insert("textureQueryLod");
|
|
|
|
- builtinFunctionsTrie.insert("textureQueryLevels");
|
|
|
|
- builtinFunctionsTrie.insert("texture");
|
|
|
|
- builtinFunctionsTrie.insert("textureProj");
|
|
|
|
- builtinFunctionsTrie.insert("textureLod");
|
|
|
|
- builtinFunctionsTrie.insert("textureOffset");
|
|
|
|
- builtinFunctionsTrie.insert("texelFetch");
|
|
|
|
- builtinFunctionsTrie.insert("texelFetchOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureProjOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureLodOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("textureProjLodOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureGrad");
|
|
|
|
- builtinFunctionsTrie.insert("textureGradOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureProjGrad");
|
|
|
|
- builtinFunctionsTrie.insert("textureProjGradOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureGather");
|
|
|
|
- builtinFunctionsTrie.insert("textureGatherOffset");
|
|
|
|
- builtinFunctionsTrie.insert("textureGatherOffsets");
|
|
|
|
- builtinFunctionsTrie.insert("texture1D");
|
|
|
|
- builtinFunctionsTrie.insert("texture1DProj");
|
|
|
|
- builtinFunctionsTrie.insert("texture1DLod");
|
|
|
|
- builtinFunctionsTrie.insert("texture1DProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("texture2D");
|
|
|
|
- builtinFunctionsTrie.insert("texture2DProj");
|
|
|
|
- builtinFunctionsTrie.insert("texture2DLod");
|
|
|
|
- builtinFunctionsTrie.insert("texture2DProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("texture3D");
|
|
|
|
- builtinFunctionsTrie.insert("texture3DProj");
|
|
|
|
- builtinFunctionsTrie.insert("texture3DLod");
|
|
|
|
- builtinFunctionsTrie.insert("texture3DProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("textureCube");
|
|
|
|
- builtinFunctionsTrie.insert("textureCubeLod");
|
|
|
|
- builtinFunctionsTrie.insert("shadow1D");
|
|
|
|
- builtinFunctionsTrie.insert("shadow2D");
|
|
|
|
- builtinFunctionsTrie.insert("shadow1DProj");
|
|
|
|
- builtinFunctionsTrie.insert("shadow2DProj");
|
|
|
|
- builtinFunctionsTrie.insert("shadow1DLod");
|
|
|
|
- builtinFunctionsTrie.insert("shadow2DLod");
|
|
|
|
- builtinFunctionsTrie.insert("shadow1DProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("shadow2DProjLod");
|
|
|
|
- builtinFunctionsTrie.insert("atomicCounterIncrement");
|
|
|
|
- builtinFunctionsTrie.insert("atomicCounterDecrement");
|
|
|
|
- builtinFunctionsTrie.insert("atomicCounter");
|
|
|
|
- builtinFunctionsTrie.insert("atomicAdd");
|
|
|
|
- builtinFunctionsTrie.insert("atomicMin");
|
|
|
|
- builtinFunctionsTrie.insert("atomicMax");
|
|
|
|
- builtinFunctionsTrie.insert("atomicAnd");
|
|
|
|
- builtinFunctionsTrie.insert("atomicOr");
|
|
|
|
- builtinFunctionsTrie.insert("atomicXor");
|
|
|
|
- builtinFunctionsTrie.insert("atomicExchange");
|
|
|
|
- builtinFunctionsTrie.insert("atomicCompSwap");
|
|
|
|
- builtinFunctionsTrie.insert("imageSize");
|
|
|
|
- builtinFunctionsTrie.insert("imageLoad");
|
|
|
|
- builtinFunctionsTrie.insert("imageStore");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicAdd");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicMin");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicMax");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicAnd");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicOr");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicXor");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicExchange");
|
|
|
|
- builtinFunctionsTrie.insert("imageAtomicCompSwap");
|
|
|
|
- builtinFunctionsTrie.insert("dFdx");
|
|
|
|
- builtinFunctionsTrie.insert("dFdy");
|
|
|
|
- builtinFunctionsTrie.insert("fwidth");
|
|
|
|
- builtinFunctionsTrie.insert("interpolateAtCentroid");
|
|
|
|
- builtinFunctionsTrie.insert("interpolateAtSample");
|
|
|
|
- builtinFunctionsTrie.insert("interpolateAtOffset");
|
|
|
|
- builtinFunctionsTrie.insert("noise1");
|
|
|
|
- builtinFunctionsTrie.insert("noise2");
|
|
|
|
- builtinFunctionsTrie.insert("noise3");
|
|
|
|
- builtinFunctionsTrie.insert("noise4");
|
|
|
|
- builtinFunctionsTrie.insert("EmitStreamVertex");
|
|
|
|
- builtinFunctionsTrie.insert("EndStreamPrimitive");
|
|
|
|
- builtinFunctionsTrie.insert("EmitVertex");
|
|
|
|
- builtinFunctionsTrie.insert("EndPrimitive");
|
|
|
|
- builtinFunctionsTrie.insert("barrier");
|
|
|
|
- builtinFunctionsTrie.insert("memoryBarrier");
|
|
|
|
- builtinFunctionsTrie.insert("memoryBarrierAtomicCounter");
|
|
|
|
- builtinFunctionsTrie.insert("memoryBarrierBuffer");
|
|
|
|
- builtinFunctionsTrie.insert("memoryBarrierShared");
|
|
|
|
- builtinFunctionsTrie.insert("memoryBarrierImage");
|
|
|
|
- builtinFunctionsTrie.insert("groupMemoryBarrier");
|
|
|
|
|
|
+ builtinFunctions.insert("radians");
|
|
|
|
+ builtinFunctions.insert("degrees");
|
|
|
|
+ builtinFunctions.insert("sin");
|
|
|
|
+ builtinFunctions.insert("cos");
|
|
|
|
+ builtinFunctions.insert("tan");
|
|
|
|
+ builtinFunctions.insert("asin");
|
|
|
|
+ builtinFunctions.insert("acos");
|
|
|
|
+ builtinFunctions.insert("atan");
|
|
|
|
+ builtinFunctions.insert("sinh");
|
|
|
|
+ builtinFunctions.insert("cosh");
|
|
|
|
+ builtinFunctions.insert("tanh");
|
|
|
|
+ builtinFunctions.insert("asinh");
|
|
|
|
+ builtinFunctions.insert("acosh");
|
|
|
|
+ builtinFunctions.insert("atanh");
|
|
|
|
+ builtinFunctions.insert("pow");
|
|
|
|
+ builtinFunctions.insert("exp");
|
|
|
|
+ builtinFunctions.insert("log");
|
|
|
|
+ builtinFunctions.insert("exp2");
|
|
|
|
+ builtinFunctions.insert("log2");
|
|
|
|
+ builtinFunctions.insert("sqrt");
|
|
|
|
+ builtinFunctions.insert("inversesqrt");
|
|
|
|
+ builtinFunctions.insert("abs");
|
|
|
|
+ builtinFunctions.insert("sign");
|
|
|
|
+ builtinFunctions.insert("floor");
|
|
|
|
+ builtinFunctions.insert("trunc");
|
|
|
|
+ builtinFunctions.insert("round");
|
|
|
|
+ builtinFunctions.insert("roundEven");
|
|
|
|
+ builtinFunctions.insert("ceil");
|
|
|
|
+ builtinFunctions.insert("fract");
|
|
|
|
+ builtinFunctions.insert("mod");
|
|
|
|
+ builtinFunctions.insert("modf");
|
|
|
|
+ builtinFunctions.insert("min");
|
|
|
|
+ builtinFunctions.insert("max");
|
|
|
|
+ builtinFunctions.insert("clamp");
|
|
|
|
+ builtinFunctions.insert("mix");
|
|
|
|
+ builtinFunctions.insert("step");
|
|
|
|
+ builtinFunctions.insert("smoothstep");
|
|
|
|
+ builtinFunctions.insert("isnan");
|
|
|
|
+ builtinFunctions.insert("isinf");
|
|
|
|
+ builtinFunctions.insert("floatBitsToInt");
|
|
|
|
+ builtinFunctions.insert("floatBitsToUInt");
|
|
|
|
+ builtinFunctions.insert("intBitsToFloat");
|
|
|
|
+ builtinFunctions.insert("uintBitsToFloat");
|
|
|
|
+ builtinFunctions.insert("fma");
|
|
|
|
+ builtinFunctions.insert("frexp");
|
|
|
|
+ builtinFunctions.insert("packUnorm2x16");
|
|
|
|
+ builtinFunctions.insert("packSnorm2x16");
|
|
|
|
+ builtinFunctions.insert("packUnorm4x8");
|
|
|
|
+ builtinFunctions.insert("packSnorm4x8");
|
|
|
|
+ builtinFunctions.insert("unpackUnorm2x16");
|
|
|
|
+ builtinFunctions.insert("unpackSnorm2x16");
|
|
|
|
+ builtinFunctions.insert("unpackUnorm4x8");
|
|
|
|
+ builtinFunctions.insert("unpackSnorm4x8");
|
|
|
|
+ builtinFunctions.insert("packDouble2x32");
|
|
|
|
+ builtinFunctions.insert("unpackDouble2x32");
|
|
|
|
+ builtinFunctions.insert("packHalf2x16");
|
|
|
|
+ builtinFunctions.insert("unpackHalf2x16");
|
|
|
|
+ builtinFunctions.insert("length");
|
|
|
|
+ builtinFunctions.insert("distance");
|
|
|
|
+ builtinFunctions.insert("dot");
|
|
|
|
+ builtinFunctions.insert("cross");
|
|
|
|
+ builtinFunctions.insert("normalize");
|
|
|
|
+ builtinFunctions.insert("ftransform");
|
|
|
|
+ builtinFunctions.insert("faceforward");
|
|
|
|
+ builtinFunctions.insert("reflect");
|
|
|
|
+ builtinFunctions.insert("refract");
|
|
|
|
+ builtinFunctions.insert("matrixCompMult");
|
|
|
|
+ builtinFunctions.insert("outerProduct");
|
|
|
|
+ builtinFunctions.insert("transpose");
|
|
|
|
+ builtinFunctions.insert("determinant");
|
|
|
|
+ builtinFunctions.insert("inverse");
|
|
|
|
+ builtinFunctions.insert("lessThan");
|
|
|
|
+ builtinFunctions.insert("lessThanEqual");
|
|
|
|
+ builtinFunctions.insert("greaterThan");
|
|
|
|
+ builtinFunctions.insert("greaterThanEqual");
|
|
|
|
+ builtinFunctions.insert("equal");
|
|
|
|
+ builtinFunctions.insert("notEqual");
|
|
|
|
+ builtinFunctions.insert("any");
|
|
|
|
+ builtinFunctions.insert("all");
|
|
|
|
+ builtinFunctions.insert("not");
|
|
|
|
+ builtinFunctions.insert("uaddCarry");
|
|
|
|
+ builtinFunctions.insert("usubBorrow");
|
|
|
|
+ builtinFunctions.insert("umulExtended");
|
|
|
|
+ builtinFunctions.insert("imulExtended");
|
|
|
|
+ builtinFunctions.insert("bitfieldExtract");
|
|
|
|
+ builtinFunctions.insert("bitfieldInsert");
|
|
|
|
+ builtinFunctions.insert("bitfieldReverse");
|
|
|
|
+ builtinFunctions.insert("bitCount");
|
|
|
|
+ builtinFunctions.insert("findLSB");
|
|
|
|
+ builtinFunctions.insert("findMSB");
|
|
|
|
+ builtinFunctions.insert("textureSize");
|
|
|
|
+ builtinFunctions.insert("textureQueryLod");
|
|
|
|
+ builtinFunctions.insert("textureQueryLevels");
|
|
|
|
+ builtinFunctions.insert("texture");
|
|
|
|
+ builtinFunctions.insert("textureProj");
|
|
|
|
+ builtinFunctions.insert("textureLod");
|
|
|
|
+ builtinFunctions.insert("textureOffset");
|
|
|
|
+ builtinFunctions.insert("texelFetch");
|
|
|
|
+ builtinFunctions.insert("texelFetchOffset");
|
|
|
|
+ builtinFunctions.insert("textureProjOffset");
|
|
|
|
+ builtinFunctions.insert("textureLodOffset");
|
|
|
|
+ builtinFunctions.insert("textureProjLod");
|
|
|
|
+ builtinFunctions.insert("textureProjLodOffset");
|
|
|
|
+ builtinFunctions.insert("textureGrad");
|
|
|
|
+ builtinFunctions.insert("textureGradOffset");
|
|
|
|
+ builtinFunctions.insert("textureProjGrad");
|
|
|
|
+ builtinFunctions.insert("textureProjGradOffset");
|
|
|
|
+ builtinFunctions.insert("textureGather");
|
|
|
|
+ builtinFunctions.insert("textureGatherOffset");
|
|
|
|
+ builtinFunctions.insert("textureGatherOffsets");
|
|
|
|
+ builtinFunctions.insert("texture1D");
|
|
|
|
+ builtinFunctions.insert("texture1DProj");
|
|
|
|
+ builtinFunctions.insert("texture1DLod");
|
|
|
|
+ builtinFunctions.insert("texture1DProjLod");
|
|
|
|
+ builtinFunctions.insert("texture2D");
|
|
|
|
+ builtinFunctions.insert("texture2DProj");
|
|
|
|
+ builtinFunctions.insert("texture2DLod");
|
|
|
|
+ builtinFunctions.insert("texture2DProjLod");
|
|
|
|
+ builtinFunctions.insert("texture3D");
|
|
|
|
+ builtinFunctions.insert("texture3DProj");
|
|
|
|
+ builtinFunctions.insert("texture3DLod");
|
|
|
|
+ builtinFunctions.insert("texture3DProjLod");
|
|
|
|
+ builtinFunctions.insert("textureCube");
|
|
|
|
+ builtinFunctions.insert("textureCubeLod");
|
|
|
|
+ builtinFunctions.insert("shadow1D");
|
|
|
|
+ builtinFunctions.insert("shadow2D");
|
|
|
|
+ builtinFunctions.insert("shadow1DProj");
|
|
|
|
+ builtinFunctions.insert("shadow2DProj");
|
|
|
|
+ builtinFunctions.insert("shadow1DLod");
|
|
|
|
+ builtinFunctions.insert("shadow2DLod");
|
|
|
|
+ builtinFunctions.insert("shadow1DProjLod");
|
|
|
|
+ builtinFunctions.insert("shadow2DProjLod");
|
|
|
|
+ builtinFunctions.insert("atomicCounterIncrement");
|
|
|
|
+ builtinFunctions.insert("atomicCounterDecrement");
|
|
|
|
+ builtinFunctions.insert("atomicCounter");
|
|
|
|
+ builtinFunctions.insert("atomicAdd");
|
|
|
|
+ builtinFunctions.insert("atomicMin");
|
|
|
|
+ builtinFunctions.insert("atomicMax");
|
|
|
|
+ builtinFunctions.insert("atomicAnd");
|
|
|
|
+ builtinFunctions.insert("atomicOr");
|
|
|
|
+ builtinFunctions.insert("atomicXor");
|
|
|
|
+ builtinFunctions.insert("atomicExchange");
|
|
|
|
+ builtinFunctions.insert("atomicCompSwap");
|
|
|
|
+ builtinFunctions.insert("imageSize");
|
|
|
|
+ builtinFunctions.insert("imageLoad");
|
|
|
|
+ builtinFunctions.insert("imageStore");
|
|
|
|
+ builtinFunctions.insert("imageAtomicAdd");
|
|
|
|
+ builtinFunctions.insert("imageAtomicMin");
|
|
|
|
+ builtinFunctions.insert("imageAtomicMax");
|
|
|
|
+ builtinFunctions.insert("imageAtomicAnd");
|
|
|
|
+ builtinFunctions.insert("imageAtomicOr");
|
|
|
|
+ builtinFunctions.insert("imageAtomicXor");
|
|
|
|
+ builtinFunctions.insert("imageAtomicExchange");
|
|
|
|
+ builtinFunctions.insert("imageAtomicCompSwap");
|
|
|
|
+ builtinFunctions.insert("dFdx");
|
|
|
|
+ builtinFunctions.insert("dFdy");
|
|
|
|
+ builtinFunctions.insert("fwidth");
|
|
|
|
+ builtinFunctions.insert("interpolateAtCentroid");
|
|
|
|
+ builtinFunctions.insert("interpolateAtSample");
|
|
|
|
+ builtinFunctions.insert("interpolateAtOffset");
|
|
|
|
+ builtinFunctions.insert("noise1");
|
|
|
|
+ builtinFunctions.insert("noise2");
|
|
|
|
+ builtinFunctions.insert("noise3");
|
|
|
|
+ builtinFunctions.insert("noise4");
|
|
|
|
+ builtinFunctions.insert("EmitStreamVertex");
|
|
|
|
+ builtinFunctions.insert("EndStreamPrimitive");
|
|
|
|
+ builtinFunctions.insert("EmitVertex");
|
|
|
|
+ builtinFunctions.insert("EndPrimitive");
|
|
|
|
+ builtinFunctions.insert("barrier");
|
|
|
|
+ builtinFunctions.insert("memoryBarrier");
|
|
|
|
+ builtinFunctions.insert("memoryBarrierAtomicCounter");
|
|
|
|
+ builtinFunctions.insert("memoryBarrierBuffer");
|
|
|
|
+ builtinFunctions.insert("memoryBarrierShared");
|
|
|
|
+ builtinFunctions.insert("memoryBarrierImage");
|
|
|
|
+ builtinFunctions.insert("groupMemoryBarrier");
|
|
}
|
|
}
|
|
|
|
|
|
public static KeywordType lookup(String s) {
|
|
public static KeywordType lookup(String s) {
|
|
KeywordType returnType = null;
|
|
KeywordType returnType = null;
|
|
- returnType = lookup(s, returnType, KeywordType.BASIC_TYPE, basicTypesTrie);
|
|
|
|
|
|
+ returnType = lookup(s, returnType, KeywordType.BASIC_TYPE, basicTypes);
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
- returnType = lookup(s, returnType, KeywordType.BUILTIN_VARIABLE, builtinVariablesTrie);
|
|
|
|
|
|
+ returnType = lookup(s, returnType, KeywordType.BUILTIN_VARIABLE, builtinVariables);
|
|
}
|
|
}
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
- returnType = lookup(s, returnType, KeywordType.BUILTIN_FUNCTION, builtinFunctionsTrie);
|
|
|
|
|
|
+ returnType = lookup(s, returnType, KeywordType.BUILTIN_FUNCTION, builtinFunctions);
|
|
}
|
|
}
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
if (returnType == KeywordType.UNFINISHED || returnType == null) {
|
|
- returnType = lookup(s, returnType, KeywordType.KEYWORD, keywordsTrie);
|
|
|
|
|
|
+ returnType = lookup(s, returnType, KeywordType.KEYWORD, keywords);
|
|
}
|
|
}
|
|
|
|
|
|
return returnType;
|
|
return returnType;
|