diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 8203ad5049c34c37ac5d8d4f59ab6b22be10cc20..bd04bea6301d9ceea31f55a075df07207868ccaf 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -33,6 +33,10 @@ //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //POSSIBILITY OF SUCH DAMAGE. // + +// this only applies to the standalone wrapper, not the front end in general +#define _CRT_SECURE_NO_WARNINGS + #include "Worklist.h" #include "./../glslang/Include/ShHandle.h" #include "./../glslang/Public/ShaderLang.h" @@ -56,6 +60,7 @@ enum TOptions { EOptionGiveWarnings = 0x010, EOptionsLinkProgram = 0x020, EOptionMultiThreaded = 0x040, + EOptionDumpConfig = 0x080, }; // @@ -85,39 +90,122 @@ ShBinding FixedAttributeBindings[] = { ShBindingTable FixedAttributeTable = { 3, FixedAttributeBindings }; EShLanguage FindLanguage(const std::string& name); -bool CompileFile(const char *fileName, ShHandle, int options, const TBuiltInResource*); +bool CompileFile(const char *fileName, ShHandle, int options); void usage(); void FreeFileData(char **data); char** ReadFileData(const char *fileName); void InfoLogMsg(const char* msg, const char* name, const int num); -// Use to test breaking a single shader file into multiple strings. +// Use to test breaking up a single shader file into multiple strings. int NumShaderStrings = 1; +TBuiltInResource Resources; +std::string ConfigFile; + +// +// These are the default resources for TBuiltInResources, used for both +// - parsing this string for the case where the user didn't supply one +// - dumping out a template for user construction of a config file +// +const char* DefaultConfig = +"MaxLights 32\n" +"MaxClipPlanes 6\n" +"MaxTextureUnits 32\n" +"MaxTextureCoords 32\n" +"MaxVertexAttribs 64\n" +"MaxVertexUniformComponents 4096\n" +"MaxVaryingFloats 64\n" +"MaxVertexTextureImageUnits 32\n" +"MaxCombinedTextureImageUnits 32\n" +"MaxTextureImageUnits 32\n" +"MaxFragmentUniformComponents 4096\n" +"MaxDrawBuffers 32\n" +"MaxVertexUniformVectors 128\n" +"MaxVaryingVectors 8\n" +"MaxFragmentUniformVectors 16\n" +"MaxVertexOutputVectors 16\n" +"MaxFragmentInputVectors 15\n" +"MinProgramTexelOffset -8\n" +"MaxProgramTexelOffset 7\n" +; + // -// Set up the per compile resources +// Parse either a .conf file provided by the user or the default string above. // -void GenerateResources(TBuiltInResource& resources) +void ProcessConfigFile() { - resources.maxLights = 32; - resources.maxClipPlanes = 6; - resources.maxTextureUnits = 32; - resources.maxTextureCoords = 32; - resources.maxVertexAttribs = 64; - resources.maxVertexUniformComponents = 4096; - resources.maxVaryingFloats = 64; - resources.maxVertexTextureImageUnits = 32; - resources.maxCombinedTextureImageUnits = 32; - resources.maxTextureImageUnits = 32; - resources.maxFragmentUniformComponents = 4096; - resources.maxDrawBuffers = 32; - resources.maxVertexUniformVectors = 128; - resources.maxVaryingVectors = 8; - resources.maxFragmentUniformVectors = 16; - resources.maxVertexOutputVectors = 16; - resources.maxFragmentInputVectors = 15; - resources.minProgramTexelOffset = -8; - resources.maxProgramTexelOffset = 7; + char** configStrings = 0; + char *config = 0; + if (ConfigFile.size() > 0) { + char** configStrings = ReadFileData(ConfigFile.c_str()); + if (configStrings) + config = *configStrings; + else { + printf("Error opening configuration file; will instead use the default configuration\n"); + usage(); + } + } + + if (config == 0) { + config = new char[strlen(DefaultConfig)]; + strcpy(config, DefaultConfig); + } + + const char* delims = " \t\n\r"; + const char* token = strtok(config, delims); + while (token) { + const char* valueStr = strtok(0, delims); + if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) { + printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : ""); + return; + } + int value = atoi(valueStr); + + if (strcmp(token, "MaxLights") == 0) + Resources.maxLights = value; + else if (strcmp(token, "MaxClipPlanes") == 0) + Resources.maxClipPlanes = value; + else if (strcmp(token, "MaxTextureUnits") == 0) + Resources.maxTextureUnits = value; + else if (strcmp(token, "MaxTextureCoords") == 0) + Resources.maxTextureCoords = value; + else if (strcmp(token, "MaxVertexAttribs") == 0) + Resources.maxVertexAttribs = value; + else if (strcmp(token, "MaxVertexUniformComponents") == 0) + Resources.maxVertexUniformComponents = value; + else if (strcmp(token, "MaxVaryingFloats") == 0) + Resources.maxVaryingFloats = value; + else if (strcmp(token, "MaxVertexTextureImageUnits") == 0) + Resources.maxVertexTextureImageUnits = value; + else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0) + Resources.maxCombinedTextureImageUnits = value; + else if (strcmp(token, "MaxTextureImageUnits") == 0) + Resources.maxTextureImageUnits = value; + else if (strcmp(token, "MaxFragmentUniformComponents") == 0) + Resources.maxFragmentUniformComponents = value; + else if (strcmp(token, "MaxDrawBuffers") == 0) + Resources.maxDrawBuffers = value; + else if (strcmp(token, "MaxVertexUniformVectors") == 0) + Resources.maxVertexUniformVectors = value; + else if (strcmp(token, "MaxVaryingVectors") == 0) + Resources.maxVaryingVectors = value; + else if (strcmp(token, "MaxFragmentUniformVectors") == 0) + Resources.maxFragmentUniformVectors = value; + else if (strcmp(token, "MaxVertexOutputVectors") == 0) + Resources.maxVertexOutputVectors = value; + else if (strcmp(token, "MaxFragmentInputVectors") == 0) + Resources.maxFragmentInputVectors = value; + else if (strcmp(token, "MinProgramTexelOffset") == 0) + Resources.minProgramTexelOffset = value; + else if (strcmp(token, "MaxProgramTexelOffset") == 0) + Resources.maxProgramTexelOffset = value; + else + printf("Warning: unrecognized limit (%s) in configuration file.\n", token); + + token = strtok(0, delims); + } + if (configStrings) + FreeFileData(configStrings); } // thread-safe list of shaders to asynchronously grab and compile @@ -131,6 +219,22 @@ int Options = 0; bool Delay = false; const char* ExecutableName; +// +// *.conf => this is a config file that can set limits/resources +// +bool SetConfigFile(const std::string& name) +{ + if (name.size() < 5) + return false; + + if (name.substr(name.size() - 5, std::string::npos) == ".conf") { + ConfigFile = name; + return true; + } + + return false; +} + bool ProcessArguments(int argc, char* argv[]) { ExecutableName = argv[0]; @@ -141,13 +245,16 @@ bool ProcessArguments(int argc, char* argv[]) argc--; argv++; for (; argc >= 1; argc--, argv++) { + Work[argc] = 0; if (argv[0][0] == '-') { - Work[argc] = 0; switch (argv[0][1]) { + case 'c': + Options |= EOptionDumpConfig; + break; case 'd': Delay = true; break; - case 'i': + case 'i': Options |= EOptionIntermediate; break; case 'l': @@ -171,14 +278,14 @@ bool ProcessArguments(int argc, char* argv[]) return false; } } else { - Work[argc] = new glslang::TWorkItem(std::string(argv[0])); - Worklist.add(Work[argc]); + std::string name(argv[0]); + if (! SetConfigFile(name)) { + Work[argc] = new glslang::TWorkItem(name); + Worklist.add(Work[argc]); + } } } - if (Worklist.empty()) - return false; - return true; } @@ -195,9 +302,7 @@ CompileShaders(void*) if (compiler == 0) return false; - TBuiltInResource resources; - GenerateResources(resources); - CompileFile(workItem->name.c_str(), compiler, Options, &resources); + CompileFile(workItem->name.c_str(), compiler, Options); if (! (Options & EOptionSuppressInfolog)) workItem->results = ShGetInfoLog(compiler); @@ -225,9 +330,6 @@ void CompileAndLinkShaders() if (Options & EOptionIntermediate) messages = (EShMessages)(messages | EShMsgAST); - TBuiltInResource resources; - GenerateResources(resources); - // // Per-shader processing... // @@ -247,7 +349,7 @@ void CompileAndLinkShaders() shader->setStrings(shaderStrings, 1); - shader->parse(&resources, 100, false, messages); + shader->parse(&Resources, 100, false, messages); program.addShader(shader); @@ -295,6 +397,20 @@ int C_DECL main(int argc, char* argv[]) return EFailUsage; } + if (Options & EOptionDumpConfig) { + printf("%s", DefaultConfig); + if (Worklist.empty()) + return ESuccess; + } + + if (Worklist.empty()) { + usage(); + return EFailUsage; + } + + ProcessConfigFile(); + + // // Two modes: // 1) linking all arguments together, single-threaded, new C++ interface @@ -384,7 +500,7 @@ EShLanguage FindLanguage(const std::string& name) // Read a file's data into a string, and compile it using the old interface ShCompile, // for non-linkable results. // -bool CompileFile(const char *fileName, ShHandle compiler, int Options, const TBuiltInResource* resources) +bool CompileFile(const char *fileName, ShHandle compiler, int Options) { int ret; char** shaderStrings = ReadFileData(fileName); @@ -410,11 +526,11 @@ bool CompileFile(const char *fileName, ShHandle compiler, int Options, const TBu for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) { for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j) { - //ret = ShCompile(compiler, shaderStrings, NumShaderStrings, lengths, EShOptNone, resources, Options, 100, false, messages); - ret = ShCompile(compiler, shaderStrings, NumShaderStrings, 0, EShOptNone, resources, Options, 100, false, messages); + //ret = ShCompile(compiler, shaderStrings, NumShaderStrings, lengths, EShOptNone, &Resources, Options, 100, false, messages); + ret = ShCompile(compiler, shaderStrings, NumShaderStrings, 0, EShOptNone, &Resources, Options, 100, false, messages); //const char* multi[4] = { "# ve", "rsion", " 300 e", "s" }; //const char* multi[7] = { "/", "/", "\\", "\n", "\n", "#", "version 300 es" }; - //ret = ShCompile(compiler, multi, 4, 0, EShOptNone, resources, Options, 100, false, messages); + //ret = ShCompile(compiler, multi, 4, 0, EShOptNone, &Resources, Options, 100, false, messages); } if (Options & EOptionMemoryLeakMode) @@ -434,6 +550,8 @@ void usage() { printf("Usage: glslangValidator [ options ] filename\n" "Where: filename is a name ending in\n" + " .conf provides an optional config file that replaces the default configuration\n" + " (see -c option below for generating a template)\n" " .vert for a vertex shader\n" " .tesc for a tessellation control shader\n" " .tese for a tessellation evaluation shader\n" @@ -442,6 +560,7 @@ void usage() " .comp for a compute shader\n\n" "Compilation warnings and errors will be printed to stdout.\n" "To get other information, use one of the following options:\n" + "-c: configuration dump; use to create default configuration file (redirect to a .conf file)\n" "-i: intermediate tree (glslang AST) is printed out\n" "-d: delay exit\n" "-l: link validation of all input files\n" diff --git a/Test/baseResults/solidworks.frag.out b/Test/baseResults/solidworks.frag.out deleted file mode 100644 index 624479c01cc3f5c3ce7e127d0d530da91cd0143f..0000000000000000000000000000000000000000 --- a/Test/baseResults/solidworks.frag.out +++ /dev/null @@ -1,2947 +0,0 @@ -0:? Sequence -0:210 Function Definition: saturate(vf4; (4-component vector of float) -0:210 Function Parameters: -0:210 'value' (in 4-component vector of float) -0:212 Sequence -0:212 Branch: Return with expression -0:212 clamp (4-component vector of float) -0:212 'value' (in 4-component vector of float) -0:212 0.000000 -0:212 1.000000 -0:214 Function Definition: saturate(vf3; (3-component vector of float) -0:214 Function Parameters: -0:214 'value' (in 3-component vector of float) -0:216 Sequence -0:216 Branch: Return with expression -0:216 clamp (3-component vector of float) -0:216 'value' (in 3-component vector of float) -0:216 0.000000 -0:216 1.000000 -0:218 Function Definition: saturate(vf2; (2-component vector of float) -0:218 Function Parameters: -0:218 'value' (in 2-component vector of float) -0:220 Sequence -0:220 Branch: Return with expression -0:220 clamp (2-component vector of float) -0:220 'value' (in 2-component vector of float) -0:220 0.000000 -0:220 1.000000 -0:222 Function Definition: saturate(f1; (float) -0:222 Function Parameters: -0:222 'value' (in float) -0:224 Sequence -0:224 Branch: Return with expression -0:224 clamp (float) -0:224 'value' (in float) -0:224 0.000000 -0:224 1.000000 -0:227 Function Definition: SphereMapCoord(vf3; (2-component vector of float) -0:227 Function Parameters: -0:227 'envcoord' (in 3-component vector of float) -0:229 Sequence -0:229 Sequence -0:229 move second child to first child (3-component vector of float) -0:229 'd' (3-component vector of float) -0:229 normalize (3-component vector of float) -0:229 'envcoord' (in 3-component vector of float) -0:230 Branch: Return with expression -0:230 Construct vec2 (2-component vector of float) -0:230 subtract (float) -0:230 component-wise multiply (float) -0:230 component-wise multiply (float) -0:230 arc tangent (float) -0:230 direct index (float) -0:230 'd' (3-component vector of float) -0:230 2 (const int) -0:230 direct index (float) -0:230 'd' (3-component vector of float) -0:230 0 (const int) -0:230 0.318309 -0:230 0.500000 -0:230 0.250000 -0:230 add (float) -0:230 component-wise multiply (float) -0:230 arc sine (float) -0:230 direct index (float) -0:230 'd' (3-component vector of float) -0:230 1 (const int) -0:230 0.318309 -0:230 0.500000 -0:233 Function Definition: Flip(vf2;b1; (2-component vector of float) -0:233 Function Parameters: -0:233 'coord' (in 2-component vector of float) -0:233 'envmapFlip' (const (read only) bool) -0:235 Sequence -0:235 Test condition and select (void) -0:235 Condition -0:235 'envmapFlip' (const (read only) bool) -0:235 true case -0:235 Branch: Return with expression -0:235 Construct vec2 (2-component vector of float) -0:235 direct index (float) -0:235 'coord' (in 2-component vector of float) -0:235 0 (const int) -0:235 subtract (float) -0:235 1.000000 -0:235 direct index (float) -0:235 'coord' (in 2-component vector of float) -0:235 1 (const int) -0:235 false case -0:236 Branch: Return with expression -0:236 'coord' (in 2-component vector of float) -0:239 Function Definition: Affine(vf4; (3-component vector of float) -0:239 Function Parameters: -0:239 'v' (in 4-component vector of float) -0:241 Sequence -0:241 Branch: Return with expression -0:241 vector-scale (3-component vector of float) -0:241 vector swizzle (3-component vector of float) -0:241 'v' (in 4-component vector of float) -0:241 Sequence -0:241 0 (const int) -0:241 1 (const int) -0:241 2 (const int) -0:241 divide (float) -0:241 1.000000 -0:241 direct index (float) -0:241 'v' (in 4-component vector of float) -0:241 3 (const int) -0:246 Function Definition: myExp(f1; (float) -0:246 Function Parameters: -0:246 'x' (in float) -0:246 Sequence -0:246 Branch: Return with expression -0:246 pow (float) -0:246 2.718282 -0:246 'x' (in float) -0:247 Function Definition: myLog(f1; (float) -0:247 Function Parameters: -0:247 'x' (in float) -0:247 Sequence -0:247 Branch: Return with expression -0:247 log (float) -0:247 'x' (in float) -0:249 Function Definition: myExpBase(f1;f1; (float) -0:249 Function Parameters: -0:249 'x' (in float) -0:249 'base' (in float) -0:249 Sequence -0:249 Branch: Return with expression -0:249 pow (float) -0:249 'base' (in float) -0:249 'x' (in float) -0:250 Function Definition: myLogBase(f1;f1; (float) -0:250 Function Parameters: -0:250 'x' (in float) -0:250 'base' (in float) -0:250 Sequence -0:250 Branch: Return with expression -0:250 divide (float) -0:250 log (float) -0:250 'x' (in float) -0:250 log (float) -0:250 'base' (in float) -0:255 Function Definition: GetLuminance(vf3; (float) -0:255 Function Parameters: -0:255 'color' (in 3-component vector of float) -0:257 Sequence -0:257 Branch: Return with expression -0:257 max (float) -0:257 dot-product (float) -0:257 0.300000 -0:257 0.590000 -0:257 0.110000 -0:257 'color' (in 3-component vector of float) -0:257 0.000000 -0:261 Function Definition: nonZeroSign(f1; (float) -0:261 Function Parameters: -0:261 'x' (in float) -0:263 Sequence -0:263 Branch: Return with expression -0:263 Test condition and select (const float) -0:263 Condition -0:263 Compare Less Than (bool) -0:263 'x' (in float) -0:263 0.000000 -0:263 true case -0:263 -1.000000 -0:263 false case -0:263 1.000000 -0:266 Function Definition: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:266 Function Parameters: -0:266 'v' (in 2-component vector of float) -0:266 'm' (in 4X4 matrix of float) -0:268 Sequence -0:268 Branch: Return with expression -0:268 vector swizzle (2-component vector of float) -0:268 matrix-times-vector (4-component vector of float) -0:268 'm' (in 4X4 matrix of float) -0:268 Construct vec4 (4-component vector of float) -0:268 'v' (in 2-component vector of float) -0:268 0.000000 -0:268 1.000000 -0:268 Sequence -0:268 0 (const int) -0:268 1 (const int) -0:272 Function Definition: saturateLight(vf4; (4-component vector of float) -0:272 Function Parameters: -0:272 'value' (in 4-component vector of float) -0:275 Sequence -0:275 Branch: Return with expression -0:275 Function Call: saturate(vf4; (4-component vector of float) -0:275 'value' (in 4-component vector of float) -0:277 Function Definition: saturateLight(vf3; (3-component vector of float) -0:277 Function Parameters: -0:277 'value' (in 3-component vector of float) -0:280 Sequence -0:280 Branch: Return with expression -0:280 Function Call: saturate(vf3; (3-component vector of float) -0:280 'value' (in 3-component vector of float) -0:282 Function Definition: saturateLight(vf2; (2-component vector of float) -0:282 Function Parameters: -0:282 'value' (in 2-component vector of float) -0:285 Sequence -0:285 Branch: Return with expression -0:285 Function Call: saturate(vf2; (2-component vector of float) -0:285 'value' (in 2-component vector of float) -0:287 Function Definition: saturateLight(f1; (float) -0:287 Function Parameters: -0:287 'value' (in float) -0:290 Sequence -0:290 Branch: Return with expression -0:290 Function Call: saturate(f1; (float) -0:290 'value' (in float) -0:293 Function Definition: SetSwizzleInW(vf3;vf4;vf4;vf4; (void) -0:293 Function Parameters: -0:293 'value' (in 3-component vector of float) -0:293 'vx' (inout 4-component vector of float) -0:293 'vy' (inout 4-component vector of float) -0:293 'vz' (inout 4-component vector of float) -0:295 Sequence -0:295 move second child to first child (float) -0:295 direct index (float) -0:295 'vx' (inout 4-component vector of float) -0:295 3 (const int) -0:295 direct index (float) -0:295 'value' (in 3-component vector of float) -0:295 0 (const int) -0:296 move second child to first child (float) -0:296 direct index (float) -0:296 'vy' (inout 4-component vector of float) -0:296 3 (const int) -0:296 direct index (float) -0:296 'value' (in 3-component vector of float) -0:296 1 (const int) -0:297 move second child to first child (float) -0:297 direct index (float) -0:297 'vz' (inout 4-component vector of float) -0:297 3 (const int) -0:297 direct index (float) -0:297 'value' (in 3-component vector of float) -0:297 2 (const int) -0:299 Function Definition: GetSwizzleInW(vf4;vf4;vf4; (3-component vector of float) -0:299 Function Parameters: -0:299 'vx' (in 4-component vector of float) -0:299 'vy' (in 4-component vector of float) -0:299 'vz' (in 4-component vector of float) -0:301 Sequence -0:301 Branch: Return with expression -0:301 Construct vec3 (3-component vector of float) -0:301 direct index (float) -0:301 'vx' (in 4-component vector of float) -0:301 3 (const int) -0:301 direct index (float) -0:301 'vy' (in 4-component vector of float) -0:301 3 (const int) -0:301 direct index (float) -0:301 'vz' (in 4-component vector of float) -0:301 3 (const int) -0:304 Function Definition: Max3(vf3; (float) -0:304 Function Parameters: -0:304 'lightSpec' (in 3-component vector of float) -0:306 Sequence -0:306 Sequence -0:306 move second child to first child (float) -0:306 'maxSpec' (float) -0:306 Test condition and select (float) -0:306 Condition -0:306 Compare Greater Than (bool) -0:306 direct index (float) -0:306 'lightSpec' (in 3-component vector of float) -0:306 0 (const int) -0:306 direct index (float) -0:306 'lightSpec' (in 3-component vector of float) -0:306 1 (const int) -0:306 true case -0:306 direct index (float) -0:306 'lightSpec' (in 3-component vector of float) -0:306 0 (const int) -0:306 false case -0:306 direct index (float) -0:306 'lightSpec' (in 3-component vector of float) -0:306 1 (const int) -0:307 Test condition and select (void) -0:307 Condition -0:307 Compare Greater Than (bool) -0:307 direct index (float) -0:307 'lightSpec' (in 3-component vector of float) -0:307 2 (const int) -0:307 'maxSpec' (float) -0:307 true case -0:307 move second child to first child (float) -0:307 'maxSpec' (float) -0:307 direct index (float) -0:307 'lightSpec' (in 3-component vector of float) -0:307 2 (const int) -0:308 Branch: Return with expression -0:308 'maxSpec' (float) -0:311 Function Definition: pGetProjectedPosition(vf4;mf44; (4-component vector of float) -0:311 Function Parameters: -0:311 'oPosition' (in 4-component vector of float) -0:311 'o2pMatrix' (in 4X4 matrix of float) -0:313 Sequence -0:313 Branch: Return with expression -0:313 matrix-times-vector (4-component vector of float) -0:313 'o2pMatrix' (in 4X4 matrix of float) -0:313 'oPosition' (in 4-component vector of float) -0:316 Function Definition: eGetNormal(vf3;mf33;b1; (3-component vector of float) -0:316 Function Parameters: -0:316 'oNormal' (in 3-component vector of float) -0:316 'o2eMatrix' (in 3X3 matrix of float) -0:316 'bDoubleSided' (in bool) -0:318 Sequence -0:318 Sequence -0:318 move second child to first child (3-component vector of float) -0:318 'normal' (3-component vector of float) -0:318 normalize (3-component vector of float) -0:318 matrix-times-vector (3-component vector of float) -0:318 'o2eMatrix' (in 3X3 matrix of float) -0:318 'oNormal' (in 3-component vector of float) -0:320 Test condition and select (void) -0:320 Condition -0:320 logical-and (bool) -0:320 Compare Less Than (bool) -0:320 direct index (float) -0:320 'normal' (3-component vector of float) -0:320 2 (const int) -0:320 0.000000 -0:320 'bDoubleSided' (in bool) -0:320 true case -0:322 Sequence -0:322 move second child to first child (3-component vector of float) -0:322 'normal' (3-component vector of float) -0:322 Negate value (3-component vector of float) -0:322 'normal' (3-component vector of float) -0:324 Branch: Return with expression -0:324 'normal' (3-component vector of float) -0:326 Function Definition: t2eGetMatrixTBN(mf33;vf3;vf3;b1; (3X3 matrix of float) -0:326 Function Parameters: -0:326 'o2eMatrix' (in 3X3 matrix of float) -0:326 'oNormal' (in 3-component vector of float) -0:326 'oTangent' (in 3-component vector of float) -0:326 'bDoubleSided' (in bool) -0:? Sequence -0:331 move second child to first child (3-component vector of float) -0:331 direct index (3-component vector of float) -0:331 'res' (3X3 matrix of float) -0:331 2 (const int) -0:331 normalize (3-component vector of float) -0:331 matrix-times-vector (3-component vector of float) -0:331 'o2eMatrix' (in 3X3 matrix of float) -0:331 'oNormal' (in 3-component vector of float) -0:332 move second child to first child (3-component vector of float) -0:332 direct index (3-component vector of float) -0:332 'res' (3X3 matrix of float) -0:332 0 (const int) -0:332 normalize (3-component vector of float) -0:332 matrix-times-vector (3-component vector of float) -0:332 'o2eMatrix' (in 3X3 matrix of float) -0:332 'oTangent' (in 3-component vector of float) -0:333 move second child to first child (3-component vector of float) -0:333 direct index (3-component vector of float) -0:333 'res' (3X3 matrix of float) -0:333 1 (const int) -0:333 normalize (3-component vector of float) -0:333 cross-product (3-component vector of float) -0:333 direct index (3-component vector of float) -0:333 'res' (3X3 matrix of float) -0:333 0 (const int) -0:333 direct index (3-component vector of float) -0:333 'res' (3X3 matrix of float) -0:333 2 (const int) -0:334 move second child to first child (3-component vector of float) -0:334 direct index (3-component vector of float) -0:334 'res' (3X3 matrix of float) -0:334 0 (const int) -0:334 normalize (3-component vector of float) -0:334 cross-product (3-component vector of float) -0:334 direct index (3-component vector of float) -0:334 'res' (3X3 matrix of float) -0:334 2 (const int) -0:334 direct index (3-component vector of float) -0:334 'res' (3X3 matrix of float) -0:334 1 (const int) -0:336 Test condition and select (void) -0:336 Condition -0:336 logical-and (bool) -0:336 Compare Less Than (bool) -0:336 direct index (float) -0:336 direct index (3-component vector of float) -0:336 'res' (3X3 matrix of float) -0:336 2 (const int) -0:336 2 (const int) -0:336 0.000000 -0:336 'bDoubleSided' (in bool) -0:336 true case -0:338 Sequence -0:338 move second child to first child (3-component vector of float) -0:338 direct index (3-component vector of float) -0:338 'res' (3X3 matrix of float) -0:338 2 (const int) -0:338 Negate value (3-component vector of float) -0:338 direct index (3-component vector of float) -0:338 'res' (3X3 matrix of float) -0:338 2 (const int) -0:340 Branch: Return with expression -0:340 'res' (3X3 matrix of float) -0:342 Function Definition: CreateMatrixTBN(vf3;vf3;b1; (3X3 matrix of float) -0:342 Function Parameters: -0:342 'eTangent' (in 3-component vector of float) -0:342 'eNormal' (in 3-component vector of float) -0:342 'bDoubleSided' (in bool) -0:? Sequence -0:347 move second child to first child (3-component vector of float) -0:347 direct index (3-component vector of float) -0:347 'res' (3X3 matrix of float) -0:347 2 (const int) -0:347 'eNormal' (in 3-component vector of float) -0:348 move second child to first child (3-component vector of float) -0:348 direct index (3-component vector of float) -0:348 'res' (3X3 matrix of float) -0:348 0 (const int) -0:348 'eTangent' (in 3-component vector of float) -0:349 move second child to first child (3-component vector of float) -0:349 direct index (3-component vector of float) -0:349 'res' (3X3 matrix of float) -0:349 1 (const int) -0:349 Negate value (3-component vector of float) -0:349 normalize (3-component vector of float) -0:349 cross-product (3-component vector of float) -0:349 direct index (3-component vector of float) -0:349 'res' (3X3 matrix of float) -0:349 2 (const int) -0:349 direct index (3-component vector of float) -0:349 'res' (3X3 matrix of float) -0:349 0 (const int) -0:351 Test condition and select (void) -0:351 Condition -0:351 logical-and (bool) -0:351 Compare Less Than (bool) -0:351 direct index (float) -0:351 direct index (3-component vector of float) -0:351 'res' (3X3 matrix of float) -0:351 2 (const int) -0:351 2 (const int) -0:351 0.000000 -0:351 'bDoubleSided' (in bool) -0:351 true case -0:353 Sequence -0:353 move second child to first child (3-component vector of float) -0:353 direct index (3-component vector of float) -0:353 'res' (3X3 matrix of float) -0:353 2 (const int) -0:353 Negate value (3-component vector of float) -0:353 direct index (3-component vector of float) -0:353 'res' (3X3 matrix of float) -0:353 2 (const int) -0:355 Branch: Return with expression -0:355 'res' (3X3 matrix of float) -0:357 Function Definition: tGetBumpNormal(s21;vf2;b1; (3-component vector of float) -0:357 Function Parameters: -0:357 'normalMap' (in sampler2D) -0:357 'commonCoord' (in 2-component vector of float) -0:357 'bNormalHack' (in bool) -0:359 Sequence -0:359 Sequence -0:359 move second child to first child (3-component vector of float) -0:359 'tBumpNormal' (3-component vector of float) -0:359 subtract (3-component vector of float) -0:359 vector-scale (3-component vector of float) -0:359 2.000000 -0:359 Construct vec3 (3-component vector of float) -0:359 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:359 'normalMap' (in sampler2D) -0:359 'commonCoord' (in 2-component vector of float) -0:359 1.000000 -0:359 1.000000 -0:359 1.000000 -0:360 Test condition and select (void) -0:360 Condition -0:360 'bNormalHack' (in bool) -0:360 true case -0:362 Sequence -0:362 vector scale second child into first child (3-component vector of float) -0:362 'tBumpNormal' (3-component vector of float) -0:362 0.800000 -0:364 Branch: Return with expression -0:364 normalize (3-component vector of float) -0:364 'tBumpNormal' (3-component vector of float) -0:366 Function Definition: tGetBumpMapNormal(s21;vf2;b1;f1; (3-component vector of float) -0:366 Function Parameters: -0:366 'normalMap' (in sampler2D) -0:366 'commonCoord' (in 2-component vector of float) -0:366 'bNormalHack' (in bool) -0:366 'scale' (in float) -0:368 Sequence -0:368 Sequence -0:368 move second child to first child (float) -0:368 'up' (float) -0:368 direct index (float) -0:368 Construct vec3 (3-component vector of float) -0:368 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:368 'normalMap' (in sampler2D) -0:368 Construct vec2 (2-component vector of float) -0:368 direct index (float) -0:368 'commonCoord' (in 2-component vector of float) -0:368 0 (const int) -0:368 add (float) -0:368 direct index (float) -0:368 'commonCoord' (in 2-component vector of float) -0:368 1 (const int) -0:368 0.010000 -0:368 0 (const int) -0:369 Sequence -0:369 move second child to first child (float) -0:369 'down' (float) -0:369 direct index (float) -0:369 Construct vec3 (3-component vector of float) -0:369 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:369 'normalMap' (in sampler2D) -0:369 Construct vec2 (2-component vector of float) -0:369 direct index (float) -0:369 'commonCoord' (in 2-component vector of float) -0:369 0 (const int) -0:369 subtract (float) -0:369 direct index (float) -0:369 'commonCoord' (in 2-component vector of float) -0:369 1 (const int) -0:369 0.010000 -0:369 0 (const int) -0:370 Sequence -0:370 move second child to first child (float) -0:370 'left' (float) -0:370 direct index (float) -0:370 Construct vec3 (3-component vector of float) -0:370 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:370 'normalMap' (in sampler2D) -0:370 Construct vec2 (2-component vector of float) -0:370 subtract (float) -0:370 direct index (float) -0:370 'commonCoord' (in 2-component vector of float) -0:370 0 (const int) -0:370 0.010000 -0:370 direct index (float) -0:370 'commonCoord' (in 2-component vector of float) -0:370 1 (const int) -0:370 0 (const int) -0:371 Sequence -0:371 move second child to first child (float) -0:371 'right' (float) -0:371 direct index (float) -0:371 Construct vec3 (3-component vector of float) -0:371 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:371 'normalMap' (in sampler2D) -0:371 Construct vec2 (2-component vector of float) -0:371 add (float) -0:371 direct index (float) -0:371 'commonCoord' (in 2-component vector of float) -0:371 0 (const int) -0:371 0.010000 -0:371 direct index (float) -0:371 'commonCoord' (in 2-component vector of float) -0:371 1 (const int) -0:371 0 (const int) -0:372 Sequence -0:372 move second child to first child (3-component vector of float) -0:372 'tBumpNormal' (3-component vector of float) -0:372 Construct vec3 (3-component vector of float) -0:372 subtract (float) -0:372 'right' (float) -0:372 'left' (float) -0:372 subtract (float) -0:372 'down' (float) -0:372 'up' (float) -0:372 'scale' (in float) -0:373 Branch: Return with expression -0:373 normalize (3-component vector of float) -0:373 'tBumpNormal' (3-component vector of float) -0:381 Function Definition: GetEyeInfo(vf4;mf44; (structure) -0:381 Function Parameters: -0:381 'oPosition' (in 4-component vector of float) -0:381 'o2eMatrix' (in 4X4 matrix of float) -0:? Sequence -0:384 move second child to first child (4-component vector of float) -0:384 ePosition: direct index for structure (4-component vector of float) -0:384 'res' (structure) -0:384 0 (const int) -0:384 matrix-times-vector (4-component vector of float) -0:384 'o2eMatrix' (in 4X4 matrix of float) -0:384 'oPosition' (in 4-component vector of float) -0:385 move second child to first child (3-component vector of float) -0:385 eEyeDirection: direct index for structure (3-component vector of float) -0:385 'res' (structure) -0:385 1 (const int) -0:385 normalize (3-component vector of float) -0:385 vector swizzle (3-component vector of float) -0:385 ePosition: direct index for structure (4-component vector of float) -0:385 'res' (structure) -0:385 0 (const int) -0:385 Sequence -0:385 0 (const int) -0:385 1 (const int) -0:385 2 (const int) -0:387 Branch: Return with expression -0:387 'res' (structure) -0:390 Function Definition: eGetReflection(vf3;vf3;vf3; (3-component vector of float) -0:390 Function Parameters: -0:390 'eNormal' (in 3-component vector of float) -0:390 'eEnvEyePosition' (in 3-component vector of float) -0:390 'eEyeCoordPosition' (in 3-component vector of float) -0:392 Sequence -0:392 Sequence -0:392 move second child to first child (3-component vector of float) -0:392 'viewVec' (3-component vector of float) -0:392 subtract (3-component vector of float) -0:392 'eEyeCoordPosition' (in 3-component vector of float) -0:392 'eEnvEyePosition' (in 3-component vector of float) -0:393 Branch: Return with expression -0:393 subtract (3-component vector of float) -0:393 'viewVec' (3-component vector of float) -0:393 vector-scale (3-component vector of float) -0:393 vector-scale (3-component vector of float) -0:393 2.000000 -0:393 'eNormal' (in 3-component vector of float) -0:393 dot-product (float) -0:393 'eNormal' (in 3-component vector of float) -0:393 'viewVec' (3-component vector of float) -0:397 Function Definition: oGetAutomaticTangent(vf3;mf44; (3-component vector of float) -0:397 Function Parameters: -0:397 'nNormal' (in 3-component vector of float) -0:397 'n2oMatrix' (in 4X4 matrix of float) -0:400 Sequence -0:400 Sequence -0:400 move second child to first child (3-component vector of float) -0:400 'nAbsnormal' (3-component vector of float) -0:400 Absolute value (3-component vector of float) -0:400 'nNormal' (in 3-component vector of float) -0:403 Sequence -0:403 move second child to first child (3-component vector of float) -0:403 'teststep' (3-component vector of float) -0:403 step (3-component vector of float) -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 subtract (3-component vector of float) -0:403 'nAbsnormal' (3-component vector of float) -0:403 vector swizzle (3-component vector of float) -0:403 'nAbsnormal' (3-component vector of float) -0:403 Sequence -0:403 1 (const int) -0:403 2 (const int) -0:403 0 (const int) -0:404 Sequence -0:404 move second child to first child (3-component vector of float) -0:404 'teststep2' (3-component vector of float) -0:404 subtract (3-component vector of float) -0:404 1.000000 -0:404 1.000000 -0:404 1.000000 -0:404 vector swizzle (3-component vector of float) -0:404 'teststep' (3-component vector of float) -0:404 Sequence -0:404 2 (const int) -0:404 0 (const int) -0:404 1 (const int) -0:405 Sequence -0:405 move second child to first child (3-component vector of float) -0:405 'cmp' (3-component vector of float) -0:405 component-wise multiply (3-component vector of float) -0:405 'teststep' (3-component vector of float) -0:405 'teststep2' (3-component vector of float) -0:408 Test condition and select (void) -0:408 Condition -0:408 Compare Equal (bool) -0:408 direct index (float) -0:408 'cmp' (3-component vector of float) -0:408 2 (const int) -0:408 1.000000 -0:408 true case -0:410 Sequence -0:410 Branch: Return with expression -0:410 1.000000 -0:410 0.000000 -0:410 0.000000 -0:412 Sequence -0:412 move second child to first child (float) -0:412 'nSign' (float) -0:412 dot-product (float) -0:412 Sign (3-component vector of float) -0:412 'nNormal' (in 3-component vector of float) -0:412 'cmp' (3-component vector of float) -0:413 Test condition and select (void) -0:413 Condition -0:413 Compare Equal (bool) -0:413 direct index (float) -0:413 'cmp' (3-component vector of float) -0:413 1 (const int) -0:413 1.000000 -0:413 true case -0:414 Branch: Return with expression -0:414 Construct vec3 (3-component vector of float) -0:414 Negate value (float) -0:414 'nSign' (float) -0:414 0.000000 -0:414 0.000000 -0:413 false case -0:416 Branch: Return with expression -0:416 Construct vec3 (3-component vector of float) -0:416 0.000000 -0:416 'nSign' (float) -0:416 0.000000 -0:418 Function Definition: xGetAutomaticTexCoords(vf3;vf3;mf44; (2-component vector of float) -0:418 Function Parameters: -0:418 'nPos' (in 3-component vector of float) -0:418 'nNormal' (in 3-component vector of float) -0:418 'n2xMatrix' (in 4X4 matrix of float) -0:421 Sequence -0:421 Sequence -0:421 move second child to first child (3-component vector of float) -0:421 'nAbsnormal' (3-component vector of float) -0:421 Absolute value (3-component vector of float) -0:421 'nNormal' (in 3-component vector of float) -0:424 Sequence -0:424 move second child to first child (3-component vector of float) -0:424 'teststep' (3-component vector of float) -0:424 step (3-component vector of float) -0:424 0.000000 -0:424 0.000000 -0:424 0.000000 -0:424 subtract (3-component vector of float) -0:424 'nAbsnormal' (3-component vector of float) -0:424 vector swizzle (3-component vector of float) -0:424 'nAbsnormal' (3-component vector of float) -0:424 Sequence -0:424 1 (const int) -0:424 2 (const int) -0:424 0 (const int) -0:425 Sequence -0:425 move second child to first child (3-component vector of float) -0:425 'teststep2' (3-component vector of float) -0:425 subtract (3-component vector of float) -0:425 1.000000 -0:425 1.000000 -0:425 1.000000 -0:425 vector swizzle (3-component vector of float) -0:425 'teststep' (3-component vector of float) -0:425 Sequence -0:425 2 (const int) -0:425 0 (const int) -0:425 1 (const int) -0:426 Sequence -0:426 move second child to first child (3-component vector of float) -0:426 'cmp' (3-component vector of float) -0:426 component-wise multiply (3-component vector of float) -0:426 'teststep' (3-component vector of float) -0:426 'teststep2' (3-component vector of float) -0:429 Sequence -0:429 move second child to first child (3-component vector of float) -0:429 'nNormalsign' (3-component vector of float) -0:429 Sign (3-component vector of float) -0:429 'nNormal' (in 3-component vector of float) -0:432 multiply second child into first child (float) -0:432 direct index (float) -0:432 'nNormalsign' (3-component vector of float) -0:432 1 (const int) -0:432 -1.000000 -0:433 multiply second child into first child (float) -0:433 direct index (float) -0:433 'cmp' (3-component vector of float) -0:433 2 (const int) -0:433 direct index (float) -0:433 'nNormalsign' (3-component vector of float) -0:433 2 (const int) -0:434 Sequence -0:434 move second child to first child (2-component vector of float) -0:434 'nTexcoord' (2-component vector of float) -0:434 Construct vec2 (2-component vector of float) -0:434 dot-product (float) -0:434 component-wise multiply (3-component vector of float) -0:434 'nNormalsign' (3-component vector of float) -0:434 vector swizzle (3-component vector of float) -0:434 'nPos' (in 3-component vector of float) -0:434 Sequence -0:434 1 (const int) -0:434 0 (const int) -0:434 0 (const int) -0:434 'cmp' (3-component vector of float) -0:434 dot-product (float) -0:434 vector swizzle (3-component vector of float) -0:434 'nPos' (in 3-component vector of float) -0:434 Sequence -0:434 2 (const int) -0:434 2 (const int) -0:434 1 (const int) -0:434 'cmp' (3-component vector of float) -0:437 Branch: Return with expression -0:437 Function Call: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:437 'nTexcoord' (2-component vector of float) -0:437 'n2xMatrix' (in 4X4 matrix of float) -0:440 Function Definition: oGetCylindricalTangent(vf3;mf44; (3-component vector of float) -0:440 Function Parameters: -0:440 'nPos' (in 3-component vector of float) -0:440 'n2oMatrix' (in 4X4 matrix of float) -0:443 Sequence -0:443 Sequence -0:443 move second child to first child (float) -0:443 'l' (float) -0:443 length (float) -0:443 vector swizzle (2-component vector of float) -0:443 'nPos' (in 3-component vector of float) -0:443 Sequence -0:443 0 (const int) -0:443 2 (const int) -0:444 Sequence -0:444 move second child to first child (2-component vector of float) -0:444 'nCylnormal' (2-component vector of float) -0:444 divide (2-component vector of float) -0:444 vector swizzle (2-component vector of float) -0:444 'nPos' (in 3-component vector of float) -0:444 Sequence -0:444 0 (const int) -0:444 2 (const int) -0:444 add (float) -0:444 'l' (float) -0:444 0.001000 -0:446 Branch: Return with expression -0:446 vector swizzle (3-component vector of float) -0:446 matrix-times-vector (4-component vector of float) -0:446 'n2oMatrix' (in 4X4 matrix of float) -0:446 Construct vec4 (4-component vector of float) -0:446 direct index (float) -0:446 'nCylnormal' (2-component vector of float) -0:446 1 (const int) -0:446 0.000000 -0:446 Negate value (float) -0:446 direct index (float) -0:446 'nCylnormal' (2-component vector of float) -0:446 0 (const int) -0:446 0.000000 -0:446 Sequence -0:446 0 (const int) -0:446 1 (const int) -0:446 2 (const int) -0:448 Function Definition: xGetCylindricalTexCoords(vf3;mf44; (2-component vector of float) -0:448 Function Parameters: -0:448 'nPos' (in 3-component vector of float) -0:448 'n2xMatrix' (in 4X4 matrix of float) -0:450 Sequence -0:450 Sequence -0:450 move second child to first child (2-component vector of float) -0:450 'nDir' (2-component vector of float) -0:450 normalize (2-component vector of float) -0:450 vector swizzle (2-component vector of float) -0:450 'nPos' (in 3-component vector of float) -0:450 Sequence -0:450 0 (const int) -0:450 2 (const int) -0:451 Sequence -0:451 move second child to first child (float) -0:451 'angle' (float) -0:451 component-wise multiply (float) -0:451 arc cosine (float) -0:451 Negate value (float) -0:451 direct index (float) -0:451 'nDir' (2-component vector of float) -0:451 0 (const int) -0:451 Function Call: nonZeroSign(f1; (float) -0:451 direct index (float) -0:451 'nDir' (2-component vector of float) -0:451 1 (const int) -0:452 Sequence -0:452 move second child to first child (2-component vector of float) -0:452 'nTexcoord' (2-component vector of float) -0:452 Construct vec2 (2-component vector of float) -0:452 component-wise multiply (float) -0:452 component-wise multiply (float) -0:452 0.159155 -0:452 add (float) -0:452 3.141592 -0:452 'angle' (float) -0:452 'faceWidth' (uniform float) -0:452 direct index (float) -0:452 'nPos' (in 3-component vector of float) -0:452 1 (const int) -0:453 Branch: Return with expression -0:453 Function Call: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:453 'nTexcoord' (2-component vector of float) -0:453 'n2xMatrix' (in 4X4 matrix of float) -0:455 Function Definition: xGetSphericalTexCoords(vf3;mf44; (2-component vector of float) -0:455 Function Parameters: -0:455 'nDir' (in 3-component vector of float) -0:455 'n2xMatrix' (in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child (3-component vector of float) -0:457 'nDir' (in 3-component vector of float) -0:457 normalize (3-component vector of float) -0:457 'nDir' (in 3-component vector of float) -0:458 Sequence -0:458 move second child to first child (2-component vector of float) -0:458 'nTexcoord' (2-component vector of float) -0:458 vector-scale (2-component vector of float) -0:458 component-wise multiply (float) -0:458 'faceWidth' (uniform float) -0:458 0.318309 -0:458 Construct vec2 (2-component vector of float) -0:458 subtract (float) -0:458 1.570796 -0:458 component-wise multiply (float) -0:458 arc tangent (float) -0:458 direct index (float) -0:458 'nDir' (in 3-component vector of float) -0:458 2 (const int) -0:458 Negate value (float) -0:458 direct index (float) -0:458 'nDir' (in 3-component vector of float) -0:458 0 (const int) -0:458 0.500000 -0:458 arc cosine (float) -0:458 direct index (float) -0:458 'nDir' (in 3-component vector of float) -0:458 1 (const int) -0:459 Branch: Return with expression -0:459 Function Call: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:459 'nTexcoord' (2-component vector of float) -0:459 'n2xMatrix' (in 4X4 matrix of float) -0:462 Function Definition: oGetProjectedTangent(mf44; (3-component vector of float) -0:462 Function Parameters: -0:462 'n2oMatrix' (in 4X4 matrix of float) -0:464 Sequence -0:464 Branch: Return with expression -0:464 normalize (3-component vector of float) -0:464 vector swizzle (3-component vector of float) -0:464 direct index (in 4-component vector of float) -0:464 'n2oMatrix' (in 4X4 matrix of float) -0:464 0 (const int) -0:464 Sequence -0:464 0 (const int) -0:464 1 (const int) -0:464 2 (const int) -0:466 Function Definition: xGetPlanarTexCoords(vf4;mf44; (2-component vector of float) -0:466 Function Parameters: -0:466 'nPos' (in 4-component vector of float) -0:466 'n2xMatrix' (in 4X4 matrix of float) -0:468 Sequence -0:468 Branch: Return with expression -0:468 Function Call: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:468 vector swizzle (2-component vector of float) -0:468 'nPos' (in 4-component vector of float) -0:468 Sequence -0:468 0 (const int) -0:468 1 (const int) -0:468 'n2xMatrix' (in 4X4 matrix of float) -0:471 Function Definition: xGetSurfaceTexCoords(vf4;mf44; (2-component vector of float) -0:471 Function Parameters: -0:471 'nTexCoord' (in 4-component vector of float) -0:471 'n2xMatrix' (in 4X4 matrix of float) -0:473 Sequence -0:473 Branch: Return with expression -0:473 Function Call: ApplyMat2D(vf2;mf44; (2-component vector of float) -0:473 vector swizzle (2-component vector of float) -0:473 'nTexCoord' (in 4-component vector of float) -0:473 Sequence -0:473 0 (const int) -0:473 1 (const int) -0:473 'n2xMatrix' (in 4X4 matrix of float) -0:477 Function Definition: GetCommonTexCoord(vf4;vf4;i1;mf44;mf44; (3-component vector of float) -0:477 Function Parameters: -0:477 'texCoord' (in 4-component vector of float) -0:477 'vertex' (in 4-component vector of float) -0:477 'iTextureCoordinates' (in int) -0:477 'textureMatrix' (in 4X4 matrix of float) -0:477 'o2nMatrix' (in 4X4 matrix of float) -0:? Sequence -0:481 Test condition and select (void) -0:481 Condition -0:481 Compare Equal (bool) -0:481 'iTextureCoordinates' (in int) -0:481 41 (const int) -0:481 true case -0:483 Sequence -0:483 move second child to first child (2-component vector of float) -0:483 vector swizzle (2-component vector of float) -0:483 'texCoordOut' (3-component vector of float) -0:483 Sequence -0:483 0 (const int) -0:483 1 (const int) -0:483 vector swizzle (2-component vector of float) -0:483 Function Call: xGetSurfaceTexCoords(vf4;mf44; (2-component vector of float) -0:483 'texCoord' (in 4-component vector of float) -0:483 'textureMatrix' (in 4X4 matrix of float) -0:483 Sequence -0:483 0 (const int) -0:483 1 (const int) -0:481 false case -0:485 Test condition and select (void) -0:485 Condition -0:485 Compare Equal (bool) -0:485 'iTextureCoordinates' (in int) -0:485 73 (const int) -0:485 true case -0:487 Sequence -0:487 move second child to first child (2-component vector of float) -0:487 vector swizzle (2-component vector of float) -0:487 'texCoordOut' (3-component vector of float) -0:487 Sequence -0:487 0 (const int) -0:487 1 (const int) -0:487 Function Call: xGetPlanarTexCoords(vf4;mf44; (2-component vector of float) -0:487 matrix-times-vector (4-component vector of float) -0:487 'o2nMatrix' (in 4X4 matrix of float) -0:487 'vertex' (in 4-component vector of float) -0:487 'textureMatrix' (in 4X4 matrix of float) -0:485 false case -0:490 Test condition and select (void) -0:490 Condition -0:490 Compare Equal (bool) -0:490 'iTextureCoordinates' (in int) -0:490 57 (const int) -0:490 true case -0:492 Sequence -0:492 move second child to first child (3-component vector of float) -0:492 'texCoordOut' (3-component vector of float) -0:492 vector swizzle (3-component vector of float) -0:492 matrix-times-vector (4-component vector of float) -0:492 'o2nMatrix' (in 4X4 matrix of float) -0:492 'vertex' (in 4-component vector of float) -0:492 Sequence -0:492 0 (const int) -0:492 1 (const int) -0:492 2 (const int) -0:490 false case -0:494 Test condition and select (void) -0:494 Condition -0:494 Compare Equal (bool) -0:494 'iTextureCoordinates' (in int) -0:494 89 (const int) -0:494 true case -0:496 Sequence -0:496 move second child to first child (3-component vector of float) -0:496 'texCoordOut' (3-component vector of float) -0:496 vector swizzle (3-component vector of float) -0:496 matrix-times-vector (4-component vector of float) -0:496 'o2nMatrix' (in 4X4 matrix of float) -0:496 'vertex' (in 4-component vector of float) -0:496 Sequence -0:496 0 (const int) -0:496 1 (const int) -0:496 2 (const int) -0:494 false case -0:498 Test condition and select (void) -0:498 Condition -0:498 Compare Equal (bool) -0:498 'iTextureCoordinates' (in int) -0:498 105 (const int) -0:498 true case -0:500 Sequence -0:500 move second child to first child (3-component vector of float) -0:500 'texCoordOut' (3-component vector of float) -0:500 vector swizzle (3-component vector of float) -0:500 matrix-times-vector (4-component vector of float) -0:500 'o2nMatrix' (in 4X4 matrix of float) -0:500 'vertex' (in 4-component vector of float) -0:500 Sequence -0:500 0 (const int) -0:500 1 (const int) -0:500 2 (const int) -0:498 false case -0:503 move second child to first child (3-component vector of float) -0:503 'texCoordOut' (3-component vector of float) -0:503 0.000000 -0:503 0.000000 -0:503 0.000000 -0:505 Branch: Return with expression -0:505 'texCoordOut' (3-component vector of float) -0:510 Function Definition: oGetTangent(vf3;vf3;i1;mf44; (3-component vector of float) -0:510 Function Parameters: -0:510 'pos' (in 3-component vector of float) -0:510 'normal' (in 3-component vector of float) -0:510 'iTextureCoordinates' (in int) -0:510 'n2oMatrix' (in 4X4 matrix of float) -0:? Sequence -0:513 Test condition and select (void) -0:513 Condition -0:513 Compare Equal (bool) -0:513 'iTextureCoordinates' (in int) -0:513 57 (const int) -0:513 true case -0:515 Sequence -0:515 move second child to first child (3-component vector of float) -0:515 'tangentOut' (3-component vector of float) -0:515 Function Call: oGetAutomaticTangent(vf3;mf44; (3-component vector of float) -0:515 'normal' (in 3-component vector of float) -0:515 'n2oMatrix' (in 4X4 matrix of float) -0:513 false case -0:517 Test condition and select (void) -0:517 Condition -0:517 Compare Equal (bool) -0:517 'iTextureCoordinates' (in int) -0:517 89 (const int) -0:517 true case -0:519 Sequence -0:519 move second child to first child (3-component vector of float) -0:519 'tangentOut' (3-component vector of float) -0:519 Function Call: oGetCylindricalTangent(vf3;mf44; (3-component vector of float) -0:519 'pos' (in 3-component vector of float) -0:519 'n2oMatrix' (in 4X4 matrix of float) -0:517 false case -0:521 Test condition and select (void) -0:521 Condition -0:521 Compare Equal (bool) -0:521 'iTextureCoordinates' (in int) -0:521 105 (const int) -0:521 true case -0:523 Sequence -0:523 move second child to first child (3-component vector of float) -0:523 'tangentOut' (3-component vector of float) -0:523 Function Call: oGetCylindricalTangent(vf3;mf44; (3-component vector of float) -0:523 'pos' (in 3-component vector of float) -0:523 'n2oMatrix' (in 4X4 matrix of float) -0:521 false case -0:525 Test condition and select (void) -0:525 Condition -0:525 Compare Equal (bool) -0:525 'iTextureCoordinates' (in int) -0:525 73 (const int) -0:525 true case -0:527 Sequence -0:527 move second child to first child (3-component vector of float) -0:527 'tangentOut' (3-component vector of float) -0:527 Function Call: oGetProjectedTangent(mf44; (3-component vector of float) -0:527 'n2oMatrix' (in 4X4 matrix of float) -0:525 false case -0:530 move second child to first child (3-component vector of float) -0:530 'tangentOut' (3-component vector of float) -0:530 0.000000 -0:530 0.000000 -0:530 0.000000 -0:532 Branch: Return with expression -0:532 'tangentOut' (3-component vector of float) -0:537 Function Definition: tGetTexCoords(vf3;vf3;i1;mf44; (2-component vector of float) -0:537 Function Parameters: -0:537 'texCoords' (in 3-component vector of float) -0:537 'normal' (in 3-component vector of float) -0:537 'iTextureCoordinates' (in int) -0:537 'textureMatrix' (in 4X4 matrix of float) -0:? Sequence -0:541 Test condition and select (void) -0:541 Condition -0:541 logical-or (bool) -0:541 Compare Equal (bool) -0:541 'iTextureCoordinates' (in int) -0:541 41 (const int) -0:541 Compare Equal (bool) -0:541 'iTextureCoordinates' (in int) -0:541 73 (const int) -0:541 true case -0:543 Sequence -0:543 move second child to first child (2-component vector of float) -0:543 vector swizzle (2-component vector of float) -0:543 'texCoordsOut' (2-component vector of float) -0:543 Sequence -0:543 0 (const int) -0:543 1 (const int) -0:543 vector swizzle (2-component vector of float) -0:543 'texCoords' (in 3-component vector of float) -0:543 Sequence -0:543 0 (const int) -0:543 1 (const int) -0:541 false case -0:546 Test condition and select (void) -0:546 Condition -0:546 Compare Equal (bool) -0:546 'iTextureCoordinates' (in int) -0:546 57 (const int) -0:546 true case -0:548 Sequence -0:548 move second child to first child (2-component vector of float) -0:548 'texCoordsOut' (2-component vector of float) -0:548 Function Call: xGetAutomaticTexCoords(vf3;vf3;mf44; (2-component vector of float) -0:548 'texCoords' (in 3-component vector of float) -0:548 'normal' (in 3-component vector of float) -0:548 'textureMatrix' (in 4X4 matrix of float) -0:546 false case -0:550 Test condition and select (void) -0:550 Condition -0:550 Compare Equal (bool) -0:550 'iTextureCoordinates' (in int) -0:550 89 (const int) -0:550 true case -0:552 Sequence -0:552 move second child to first child (2-component vector of float) -0:552 'texCoordsOut' (2-component vector of float) -0:552 Function Call: xGetCylindricalTexCoords(vf3;mf44; (2-component vector of float) -0:552 'texCoords' (in 3-component vector of float) -0:552 'textureMatrix' (in 4X4 matrix of float) -0:550 false case -0:554 Test condition and select (void) -0:554 Condition -0:554 Compare Equal (bool) -0:554 'iTextureCoordinates' (in int) -0:554 105 (const int) -0:554 true case -0:556 Sequence -0:556 move second child to first child (2-component vector of float) -0:556 'texCoordsOut' (2-component vector of float) -0:556 Function Call: xGetSphericalTexCoords(vf3;mf44; (2-component vector of float) -0:556 'texCoords' (in 3-component vector of float) -0:556 'textureMatrix' (in 4X4 matrix of float) -0:559 Branch: Return with expression -0:559 'texCoordsOut' (2-component vector of float) -0:562 Function Definition: tGetDispTexCoords(s21;vf2;vf3;f1; (2-component vector of float) -0:562 Function Parameters: -0:562 'normalMap' (in sampler2D) -0:562 'commonCoord' (in 2-component vector of float) -0:562 'viewDir' (in 3-component vector of float) -0:562 'parallaxOffset' (in float) -0:565 Sequence -0:565 Sequence -0:565 move second child to first child (float) -0:565 'height' (float) -0:565 component-wise multiply (float) -0:565 2.000000 -0:565 subtract (float) -0:565 direct index (float) -0:565 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:565 'normalMap' (in sampler2D) -0:565 'commonCoord' (in 2-component vector of float) -0:565 3 (const int) -0:565 0.500000 -0:566 Sequence -0:566 move second child to first child (2-component vector of float) -0:566 'offset' (2-component vector of float) -0:566 vector-scale (2-component vector of float) -0:566 vector-scale (2-component vector of float) -0:566 vector swizzle (2-component vector of float) -0:566 normalize (3-component vector of float) -0:566 vector swizzle (3-component vector of float) -0:566 'viewDir' (in 3-component vector of float) -0:566 Sequence -0:566 0 (const int) -0:566 1 (const int) -0:566 2 (const int) -0:566 Sequence -0:566 0 (const int) -0:566 1 (const int) -0:566 'height' (float) -0:566 'parallaxOffset' (in float) -0:568 Branch: Return with expression -0:568 add (2-component vector of float) -0:568 'commonCoord' (in 2-component vector of float) -0:568 'offset' (2-component vector of float) -0:570 Function Definition: getCosmeticTexcoord(vf4;mf44; (2-component vector of float) -0:570 Function Parameters: -0:570 'ePos' (in 4-component vector of float) -0:570 'e2cTransform' (in 4X4 matrix of float) -0:572 Sequence -0:572 Sequence -0:572 move second child to first child (4-component vector of float) -0:572 'cPos' (4-component vector of float) -0:572 matrix-times-vector (4-component vector of float) -0:572 'e2cTransform' (in 4X4 matrix of float) -0:572 'ePos' (in 4-component vector of float) -0:573 Branch: Return with expression -0:573 divide (2-component vector of float) -0:573 vector swizzle (2-component vector of float) -0:573 'cPos' (4-component vector of float) -0:573 Sequence -0:573 0 (const int) -0:573 1 (const int) -0:573 direct index (float) -0:573 'cPos' (4-component vector of float) -0:573 3 (const int) -0:576 Function Definition: getCosmeticAlpha(vf2;s21; (float) -0:576 Function Parameters: -0:576 'texcoord' (in 2-component vector of float) -0:576 'alphaMap' (in sampler2D) -0:578 Sequence -0:578 Branch: Return with expression -0:578 direct index (float) -0:578 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:578 'alphaMap' (in sampler2D) -0:578 vector swizzle (2-component vector of float) -0:578 'texcoord' (in 2-component vector of float) -0:578 Sequence -0:578 0 (const int) -0:578 1 (const int) -0:578 3 (const int) -0:581 Function Definition: GetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:581 Function Parameters: -0:581 'lightDirOrPos' (in 3-component vector of float) -0:581 'position' (in 3-component vector of float) -0:581 'lightType' (in float) -0:583 Sequence -0:583 Branch: Return with expression -0:583 normalize (3-component vector of float) -0:583 subtract (3-component vector of float) -0:583 'lightDirOrPos' (in 3-component vector of float) -0:583 vector-scale (3-component vector of float) -0:583 'position' (in 3-component vector of float) -0:583 'lightType' (in float) -0:585 Function Definition: GetLightDir_D(vf3; (3-component vector of float) -0:585 Function Parameters: -0:585 'lightDir' (in 3-component vector of float) -0:588 Sequence -0:588 Branch: Return with expression -0:588 normalize (3-component vector of float) -0:588 'lightDir' (in 3-component vector of float) -0:590 Function Definition: GetLightDir_P(vf3;vf3; (3-component vector of float) -0:590 Function Parameters: -0:590 'lightPos' (in 3-component vector of float) -0:590 'position' (in 3-component vector of float) -0:592 Sequence -0:592 Branch: Return with expression -0:592 normalize (3-component vector of float) -0:592 subtract (3-component vector of float) -0:592 'lightPos' (in 3-component vector of float) -0:592 'position' (in 3-component vector of float) -0:594 Function Definition: tGetLightDir_D(mf33;vf3; (3-component vector of float) -0:594 Function Parameters: -0:594 't2eMatrixTBN' (in 3X3 matrix of float) -0:594 'eLightDir' (in 3-component vector of float) -0:596 Sequence -0:596 Branch: Return with expression -0:596 vector-times-matrix (3-component vector of float) -0:596 Function Call: GetLightDir_D(vf3; (3-component vector of float) -0:596 'eLightDir' (in 3-component vector of float) -0:596 't2eMatrixTBN' (in 3X3 matrix of float) -0:598 Function Definition: eGetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:598 Function Parameters: -0:598 'eLightDirOrPos' (in 3-component vector of float) -0:598 'ePosition' (in 3-component vector of float) -0:598 'lightType' (in float) -0:600 Sequence -0:600 Branch: Return with expression -0:600 Function Call: GetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:600 'eLightDirOrPos' (in 3-component vector of float) -0:600 'ePosition' (in 3-component vector of float) -0:600 'lightType' (in float) -0:602 Function Definition: tGetLightDir_DP(mf33;vf3;vf3;f1; (3-component vector of float) -0:602 Function Parameters: -0:602 't2eMatrixTBN' (in 3X3 matrix of float) -0:602 'eLightDirOrPos' (in 3-component vector of float) -0:602 'ePosition' (in 3-component vector of float) -0:602 'lightType' (in float) -0:604 Sequence -0:604 Branch: Return with expression -0:604 vector-times-matrix (3-component vector of float) -0:604 Function Call: eGetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:604 'eLightDirOrPos' (in 3-component vector of float) -0:604 'ePosition' (in 3-component vector of float) -0:604 'lightType' (in float) -0:604 't2eMatrixTBN' (in 3X3 matrix of float) -0:608 Function Definition: GetHalfVector(vf3;vf3; (3-component vector of float) -0:608 Function Parameters: -0:608 'lightDir' (in 3-component vector of float) -0:608 'eyeDirection' (in 3-component vector of float) -0:610 Sequence -0:610 Branch: Return with expression -0:610 normalize (3-component vector of float) -0:610 add (3-component vector of float) -0:610 'lightDir' (in 3-component vector of float) -0:610 'eyeDirection' (in 3-component vector of float) -0:612 Function Definition: eGetHalfVector(vf3;vf3; (3-component vector of float) -0:612 Function Parameters: -0:612 'eLightDir' (in 3-component vector of float) -0:612 'eEyeDirection' (in 3-component vector of float) -0:618 Sequence -0:618 Branch: Return with expression -0:618 Function Call: GetHalfVector(vf3;vf3; (3-component vector of float) -0:618 'eLightDir' (in 3-component vector of float) -0:618 0.000000 -0:618 0.000000 -0:618 1.000000 -0:620 Function Definition: tGetHalfVector(vf3;vf3;mf33; (3-component vector of float) -0:620 Function Parameters: -0:620 'tLightDir' (in 3-component vector of float) -0:620 'eEyeDirection' (in 3-component vector of float) -0:620 't2eMatrixTBN' (in 3X3 matrix of float) -0:626 Sequence -0:626 Sequence -0:626 move second child to first child (3-component vector of float) -0:626 'tEyeDirection' (3-component vector of float) -0:626 Construct vec3 (3-component vector of float) -0:626 direct index (float) -0:626 direct index (in 3-component vector of float) -0:626 't2eMatrixTBN' (in 3X3 matrix of float) -0:626 0 (const int) -0:626 2 (const int) -0:626 direct index (float) -0:626 direct index (in 3-component vector of float) -0:626 't2eMatrixTBN' (in 3X3 matrix of float) -0:626 1 (const int) -0:626 2 (const int) -0:626 direct index (float) -0:626 direct index (in 3-component vector of float) -0:626 't2eMatrixTBN' (in 3X3 matrix of float) -0:626 2 (const int) -0:626 2 (const int) -0:627 Branch: Return with expression -0:627 Function Call: GetHalfVector(vf3;vf3; (3-component vector of float) -0:627 'tLightDir' (in 3-component vector of float) -0:627 'tEyeDirection' (3-component vector of float) -0:631 Function Definition: GetFresnelPower(vf3; (float) -0:631 Function Parameters: -0:631 'eNormal' (in 3-component vector of float) -0:636 Sequence -0:636 Sequence -0:636 move second child to first child (float) -0:636 'oneMCosAngle' (float) -0:636 max (float) -0:636 subtract (float) -0:636 1.000000 -0:636 Absolute value (float) -0:636 direct index (float) -0:636 'eNormal' (in 3-component vector of float) -0:636 2 (const int) -0:636 0.010000 -0:637 Branch: Return with expression -0:637 pow (float) -0:637 'oneMCosAngle' (float) -0:637 5.000000 -0:640 Function Definition: GetFresnelTerm_Transparency(vf3;f1;vf2; (float) -0:640 Function Parameters: -0:640 'eNormal' (in 3-component vector of float) -0:640 'transparency' (in float) -0:640 'fresnelCoef' (in 2-component vector of float) -0:642 Sequence -0:642 Branch: Return with expression -0:642 add (float) -0:642 component-wise multiply (float) -0:642 subtract (float) -0:642 1.000000 -0:642 'transparency' (in float) -0:642 direct index (float) -0:642 'fresnelCoef' (in 2-component vector of float) -0:642 0 (const int) -0:642 component-wise multiply (float) -0:642 direct index (float) -0:642 'fresnelCoef' (in 2-component vector of float) -0:642 1 (const int) -0:642 Function Call: GetFresnelPower(vf3; (float) -0:642 'eNormal' (in 3-component vector of float) -0:645 Function Definition: GetFresnelTerm_Standard(vf3;vf2; (float) -0:645 Function Parameters: -0:645 'eNormal' (in 3-component vector of float) -0:645 'fresnelCoef' (in 2-component vector of float) -0:647 Sequence -0:647 Branch: Return with expression -0:647 add (float) -0:647 direct index (float) -0:647 'fresnelCoef' (in 2-component vector of float) -0:647 0 (const int) -0:647 component-wise multiply (float) -0:647 direct index (float) -0:647 'fresnelCoef' (in 2-component vector of float) -0:647 1 (const int) -0:647 Function Call: GetFresnelPower(vf3; (float) -0:647 'eNormal' (in 3-component vector of float) -0:649 Function Definition: GetFresnel_New(vf3;f1; (float) -0:649 Function Parameters: -0:649 'eNormal' (in 3-component vector of float) -0:649 'fresnelCoef' (in float) -0:651 Sequence -0:651 Branch: Return with expression -0:651 pow (float) -0:651 max (float) -0:651 subtract (float) -0:651 1.000000 -0:651 Absolute value (float) -0:651 direct index (float) -0:651 'eNormal' (in 3-component vector of float) -0:651 2 (const int) -0:651 0.010000 -0:651 'fresnelCoef' (in float) -0:654 Function Definition: GetFresnelTerm(vf3;f1;vf2;i1; (float) -0:654 Function Parameters: -0:654 'eNormal' (in 3-component vector of float) -0:654 'transparency' (in float) -0:654 'fresnelCoef' (in 2-component vector of float) -0:654 'iFresnelType' (in int) -0:656 Sequence -0:656 Test condition and select (void) -0:656 Condition -0:656 Compare Equal (bool) -0:656 'iFresnelType' (in int) -0:656 48 (const int) -0:656 true case -0:658 Sequence -0:658 Branch: Return with expression -0:658 Function Call: GetFresnelTerm_Transparency(vf3;f1;vf2; (float) -0:658 'eNormal' (in 3-component vector of float) -0:658 'transparency' (in float) -0:658 'fresnelCoef' (in 2-component vector of float) -0:656 false case -0:660 Test condition and select (void) -0:660 Condition -0:660 Compare Equal (bool) -0:660 'iFresnelType' (in int) -0:660 32 (const int) -0:660 true case -0:662 Sequence -0:662 Branch: Return with expression -0:662 Function Call: GetFresnelTerm_Standard(vf3;vf2; (float) -0:662 'eNormal' (in 3-component vector of float) -0:662 'fresnelCoef' (in 2-component vector of float) -0:660 false case -0:666 Sequence -0:666 Branch: Return with expression -0:666 Function Call: GetFresnel_New(vf3;f1; (float) -0:666 'eNormal' (in 3-component vector of float) -0:666 direct index (float) -0:666 'fresnelCoef' (in 2-component vector of float) -0:666 0 (const int) -0:672 Function Definition: GetRimLight(vf3;f1;f1;vf3; (3-component vector of float) -0:672 Function Parameters: -0:672 'tNormal' (in 3-component vector of float) -0:672 'rimlightCoef1' (in float) -0:672 'rimlightCoef2' (in float) -0:672 'rimlightColor' (in 3-component vector of float) -0:674 Sequence -0:674 Branch: Return with expression -0:674 vector-scale (3-component vector of float) -0:674 add (float) -0:674 component-wise multiply (float) -0:674 'rimlightCoef1' (in float) -0:674 Function Call: GetFresnelPower(vf3; (float) -0:674 'tNormal' (in 3-component vector of float) -0:674 'rimlightCoef2' (in float) -0:674 'rimlightColor' (in 3-component vector of float) -0:678 Function Definition: GetMaxSpecTerm(vf4;b1; (float) -0:678 Function Parameters: -0:678 'specular' (in 4-component vector of float) -0:678 'iMaxSpecW' (in bool) -0:680 Sequence -0:680 Test condition and select (void) -0:680 Condition -0:680 'iMaxSpecW' (in bool) -0:680 true case -0:682 Sequence -0:682 Branch: Return with expression -0:682 direct index (float) -0:682 'specular' (in 4-component vector of float) -0:682 3 (const int) -0:680 false case -0:686 Sequence -0:686 Branch: Return with expression -0:686 direct index (float) -0:686 'specular' (in 4-component vector of float) -0:686 0 (const int) -0:690 Function Definition: GetSpecFac(f1;vf2; (float) -0:690 Function Parameters: -0:690 'fMaxSpec' (in float) -0:690 'coef' (in 2-component vector of float) -0:692 Sequence -0:692 Branch: Return with expression -0:692 Function Call: saturate(f1; (float) -0:692 component-wise multiply (float) -0:692 subtract (float) -0:692 'fMaxSpec' (in float) -0:692 direct index (float) -0:692 'coef' (in 2-component vector of float) -0:692 0 (const int) -0:692 direct index (float) -0:692 'coef' (in 2-component vector of float) -0:692 1 (const int) -0:696 Function Definition: GetDiffuseFromOneLight(vf3;vf3;vf3;i1;f1; (3-component vector of float) -0:696 Function Parameters: -0:696 'normal' (in 3-component vector of float) -0:696 'lightDir' (in 3-component vector of float) -0:696 'lightColor' (in 3-component vector of float) -0:696 'iAlphaType' (in int) -0:696 'transparency' (in float) -0:699 Sequence -0:699 Sequence -0:699 move second child to first child (float) -0:699 'LdotB' (float) -0:699 dot-product (float) -0:699 'lightDir' (in 3-component vector of float) -0:699 'normal' (in 3-component vector of float) -0:700 Test condition and select (void) -0:700 Condition -0:700 Compare Equal (bool) -0:700 'iAlphaType' (in int) -0:700 26 (const int) -0:700 true case -0:702 Sequence -0:702 move second child to first child (float) -0:702 'LdotB' (float) -0:702 Function Call: saturate(f1; (float) -0:702 'LdotB' (float) -0:700 false case -0:706 Sequence -0:706 Test condition and select (void) -0:706 Condition -0:706 Compare Less Than (bool) -0:706 'LdotB' (float) -0:706 0.000000 -0:706 true case -0:708 Sequence -0:708 move second child to first child (float) -0:708 'LdotB' (float) -0:708 component-wise multiply (float) -0:708 Absolute value (float) -0:708 'LdotB' (float) -0:708 subtract (float) -0:708 1.000000 -0:708 'transparency' (in float) -0:713 Branch: Return with expression -0:713 vector-scale (3-component vector of float) -0:713 'LdotB' (float) -0:713 'lightColor' (in 3-component vector of float) -0:717 Function Definition: GetSpecularFromOneLight(vf3;vf3;f1;vf3;b1; (4-component vector of float) -0:717 Function Parameters: -0:717 'normal' (in 3-component vector of float) -0:717 'halfVector' (in 3-component vector of float) -0:717 'specularPower' (in float) -0:717 'lightSpec' (in 3-component vector of float) -0:717 'bSpecWTerm' (in bool) -0:719 Sequence -0:719 Sequence -0:719 move second child to first child (float) -0:719 'ndoth' (float) -0:719 dot-product (float) -0:719 'normal' (in 3-component vector of float) -0:719 'halfVector' (in 3-component vector of float) -0:720 move second child to first child (float) -0:720 'ndoth' (float) -0:720 pow (float) -0:720 max (float) -0:720 'ndoth' (float) -0:720 0.010000 -0:720 'specularPower' (in float) -0:722 Sequence -0:722 move second child to first child (4-component vector of float) -0:722 'res' (4-component vector of float) -0:722 Construct vec4 (4-component vector of float) -0:722 vector-scale (3-component vector of float) -0:722 'ndoth' (float) -0:722 'lightSpec' (in 3-component vector of float) -0:722 0.000000 -0:723 Test condition and select (void) -0:723 Condition -0:723 'bSpecWTerm' (in bool) -0:723 true case -0:725 Sequence -0:725 move second child to first child (float) -0:725 direct index (float) -0:725 'res' (4-component vector of float) -0:725 3 (const int) -0:725 component-wise multiply (float) -0:725 'ndoth' (float) -0:725 Function Call: Max3(vf3; (float) -0:725 'lightSpec' (in 3-component vector of float) -0:727 Branch: Return with expression -0:727 'res' (4-component vector of float) -0:734 Function Definition: AddSpecularAndDiffuse(vf3;vf3;vf3;i1;vf3;vf3;f1;b1;b1;vf3;vf4;f1; (void) -0:734 Function Parameters: -0:734 'normal' (in 3-component vector of float) -0:734 'lightDirAux' (in 3-component vector of float) -0:734 'lightColor' (in 3-component vector of float) -0:734 'iAlphaType' (in int) -0:734 'halfVector' (in 3-component vector of float) -0:734 'lightSpec' (in 3-component vector of float) -0:734 'specularPower' (in float) -0:734 'bMaxSpec' (in bool) -0:734 'noSpec' (in bool) -0:734 'diffuseLight' (inout 3-component vector of float) -0:734 'specularLight' (inout 4-component vector of float) -0:734 'transparency' (in float) -0:736 Sequence -0:736 add second child into first child (3-component vector of float) -0:736 'diffuseLight' (inout 3-component vector of float) -0:736 Function Call: GetDiffuseFromOneLight(vf3;vf3;vf3;i1;f1; (3-component vector of float) -0:736 'normal' (in 3-component vector of float) -0:736 'lightDirAux' (in 3-component vector of float) -0:736 'lightColor' (in 3-component vector of float) -0:736 'iAlphaType' (in int) -0:736 'transparency' (in float) -0:737 Test condition and select (void) -0:737 Condition -0:737 Negate conditional (bool) -0:737 'noSpec' (in bool) -0:737 true case -0:739 Sequence -0:739 add second child into first child (4-component vector of float) -0:739 'specularLight' (inout 4-component vector of float) -0:739 Function Call: GetSpecularFromOneLight(vf3;vf3;f1;vf3;b1; (4-component vector of float) -0:739 'normal' (in 3-component vector of float) -0:739 'halfVector' (in 3-component vector of float) -0:739 'specularPower' (in float) -0:739 'lightSpec' (in 3-component vector of float) -0:739 'bMaxSpec' (in bool) -0:745 Function Definition: GetDiffuseTerm(vf3;vf3; (3-component vector of float) -0:745 Function Parameters: -0:745 'diffuseLight' (in 3-component vector of float) -0:745 'materialColor' (in 3-component vector of float) -0:747 Sequence -0:747 Branch: Return with expression -0:747 component-wise multiply (3-component vector of float) -0:747 'diffuseLight' (in 3-component vector of float) -0:747 'materialColor' (in 3-component vector of float) -0:750 Function Definition: GetSpecularTerm(vf3;vf3; (3-component vector of float) -0:750 Function Parameters: -0:750 'specularLight' (in 3-component vector of float) -0:750 'materialColor' (in 3-component vector of float) -0:752 Sequence -0:752 Branch: Return with expression -0:752 component-wise multiply (3-component vector of float) -0:752 'specularLight' (in 3-component vector of float) -0:752 'materialColor' (in 3-component vector of float) -0:755 Function Definition: GetFresnelAmbient(f1; (3-component vector of float) -0:755 Function Parameters: -0:755 'fresnel' (in float) -0:757 Sequence -0:757 Branch: Return with expression -0:757 Construct vec3 (3-component vector of float) -0:757 'fresnel' (in float) -0:761 Function Definition: TransformEnvColor(vf3;b1;f1;f1;f1;vf3; (3-component vector of float) -0:761 Function Parameters: -0:761 'envColorIn' (in 3-component vector of float) -0:761 'useHdr' (in bool) -0:761 'envColorWash' (in float) -0:761 'envBrightness' (in float) -0:761 'envContrast' (in float) -0:761 'envColorModifier' (in 3-component vector of float) -0:763 Sequence -0:763 Test condition and select (void) -0:763 Condition -0:763 'useHdr' (in bool) -0:763 true case -0:769 Sequence -0:769 move second child to first child (3-component vector of float) -0:769 'envColorIn' (in 3-component vector of float) -0:769 add (3-component vector of float) -0:769 vector-scale (3-component vector of float) -0:769 subtract (3-component vector of float) -0:769 'envColorIn' (in 3-component vector of float) -0:769 'envcolorAverage' (uniform 3-component vector of float) -0:769 'envContrast' (in float) -0:769 vector-scale (3-component vector of float) -0:769 'envcolorAverage' (uniform 3-component vector of float) -0:769 'envBrightness' (in float) -0:770 move second child to first child (3-component vector of float) -0:770 'envColorIn' (in 3-component vector of float) -0:770 mix (3-component vector of float) -0:770 'envColorIn' (in 3-component vector of float) -0:770 Construct vec3 (3-component vector of float) -0:770 Function Call: GetLuminance(vf3; (float) -0:770 'envColorIn' (in 3-component vector of float) -0:770 'envColorWash' (in float) -0:771 multiply second child into first child (3-component vector of float) -0:771 'envColorIn' (in 3-component vector of float) -0:771 'envColorModifier' (in 3-component vector of float) -0:772 Branch: Return with expression -0:772 max (3-component vector of float) -0:772 'envColorIn' (in 3-component vector of float) -0:772 0.000000 -0:772 0.000000 -0:772 0.000000 -0:763 false case -0:776 Sequence -0:776 Sequence -0:776 move second child to first child (3-component vector of float) -0:776 'color' (3-component vector of float) -0:776 mix (3-component vector of float) -0:776 vector swizzle (3-component vector of float) -0:776 'envColorIn' (in 3-component vector of float) -0:776 Sequence -0:776 0 (const int) -0:776 1 (const int) -0:776 2 (const int) -0:776 Construct vec3 (3-component vector of float) -0:776 Function Call: GetLuminance(vf3; (float) -0:776 'envColorIn' (in 3-component vector of float) -0:776 'envColorWash' (in float) -0:777 Sequence -0:777 move second child to first child (3-component vector of float) -0:777 'res' (3-component vector of float) -0:777 add (3-component vector of float) -0:777 add (3-component vector of float) -0:777 vector-scale (3-component vector of float) -0:777 add (3-component vector of float) -0:777 subtract (3-component vector of float) -0:777 'color' (3-component vector of float) -0:777 0.635000 -0:777 'envBrightness' (in float) -0:777 'envContrast' (in float) -0:777 0.635000 -0:777 'envColorModifier' (in 3-component vector of float) -0:778 Branch: Return with expression -0:778 'res' (3-component vector of float) -0:783 Function Definition: GetEnv(vf3; (4-component vector of float) -0:783 Function Parameters: -0:783 'envCoord' (in 3-component vector of float) -0:787 Sequence -0:787 Sequence -0:787 Branch: Return with expression -0:787 Function Call: textureCube(sC1;vf3; (4-component vector of float) -0:787 'envCubicSpecular' (uniform samplerCube) -0:787 'envCoord' (in 3-component vector of float) -0:795 Function Definition: GetEnvDiffuse(vf3; (4-component vector of float) -0:795 Function Parameters: -0:795 'envCoord' (in 3-component vector of float) -0:799 Sequence -0:799 Sequence -0:799 Branch: Return with expression -0:799 Function Call: textureCube(sC1;vf3; (4-component vector of float) -0:799 'envCubicDiffuse' (uniform samplerCube) -0:799 'envCoord' (in 3-component vector of float) -0:806 Function Definition: GetAmbiantAndDiffuseModifierEnv(vf3;f1;f1;f1;vf3;b1; (3-component vector of float) -0:806 Function Parameters: -0:806 'envCoord' (in 3-component vector of float) -0:806 'envColorWash' (in float) -0:806 'envBrightness' (in float) -0:806 'envContrast' (in float) -0:806 'envColor' (in 3-component vector of float) -0:806 'useHdr' (in bool) -0:808 Sequence -0:808 Sequence -0:808 move second child to first child (4-component vector of float) -0:808 'env' (4-component vector of float) -0:808 Function Call: GetEnv(vf3; (4-component vector of float) -0:808 'envCoord' (in 3-component vector of float) -0:809 Branch: Return with expression -0:809 Function Call: TransformEnvColor(vf3;b1;f1;f1;f1;vf3; (3-component vector of float) -0:809 vector swizzle (3-component vector of float) -0:809 'env' (4-component vector of float) -0:809 Sequence -0:809 0 (const int) -0:809 1 (const int) -0:809 2 (const int) -0:809 'useHdr' (in bool) -0:809 'envColorWash' (in float) -0:809 'envBrightness' (in float) -0:809 'envContrast' (in float) -0:809 'envColor' (in 3-component vector of float) -0:811 Function Definition: GetDiffuseMap(s21;vf2;vf3;vf3; (4-component vector of float) -0:811 Function Parameters: -0:811 'diffMap' (in sampler2D) -0:811 'coord' (in 2-component vector of float) -0:811 'average' (in 3-component vector of float) -0:811 'diffuseMapModifierCWB' (in 3-component vector of float) -0:822 Sequence -0:822 Sequence -0:822 Branch: Return with expression -0:822 Function Call: texture2D(s21;vf2; (4-component vector of float) -0:822 'diffMap' (in sampler2D) -0:822 'coord' (in 2-component vector of float) -0:826 Function Definition: GetAmbiantAndDiffuseModifierDiff(s21;vf2;vf3;vf3; (3-component vector of float) -0:826 Function Parameters: -0:826 'diffMap' (in sampler2D) -0:826 'commonCoord' (in 2-component vector of float) -0:826 'average' (in 3-component vector of float) -0:826 'diffuseMapModifier' (in 3-component vector of float) -0:828 Sequence -0:828 Branch: Return with expression -0:828 vector swizzle (3-component vector of float) -0:828 Function Call: GetDiffuseMap(s21;vf2;vf3;vf3; (4-component vector of float) -0:828 'diffMap' (in sampler2D) -0:828 'commonCoord' (in 2-component vector of float) -0:828 'average' (in 3-component vector of float) -0:828 'diffuseMapModifier' (in 3-component vector of float) -0:828 Sequence -0:828 0 (const int) -0:828 1 (const int) -0:828 2 (const int) -0:831 Function Definition: GetAmbiantAndDiffuseModifierDiffAlpha(s21;vf2;vf3;vf3; (4-component vector of float) -0:831 Function Parameters: -0:831 'diffMap' (in sampler2D) -0:831 'commonCoord' (in 2-component vector of float) -0:831 'average' (in 3-component vector of float) -0:831 'diffuseMapModifier' (in 3-component vector of float) -0:833 Sequence -0:833 Branch: Return with expression -0:833 vector swizzle (4-component vector of float) -0:833 Function Call: GetDiffuseMap(s21;vf2;vf3;vf3; (4-component vector of float) -0:833 'diffMap' (in sampler2D) -0:833 'commonCoord' (in 2-component vector of float) -0:833 'average' (in 3-component vector of float) -0:833 'diffuseMapModifier' (in 3-component vector of float) -0:833 Sequence -0:833 0 (const int) -0:833 1 (const int) -0:833 2 (const int) -0:833 3 (const int) -0:838 Function Definition: GetAlphaFrom_Material(vf4; (float) -0:838 Function Parameters: -0:838 'matColor' (in 4-component vector of float) -0:840 Sequence -0:840 Branch: Return with expression -0:840 direct index (float) -0:840 'matColor' (in 4-component vector of float) -0:840 3 (const int) -0:842 Function Definition: GetAlphaFrom_Fresnel(f1; (float) -0:842 Function Parameters: -0:842 'fresnel' (in float) -0:844 Sequence -0:844 Branch: Return with expression -0:844 subtract (float) -0:844 1.000000 -0:844 'fresnel' (in float) -0:846 Function Definition: GetAlphaFrom_FresnelPlusTransparency(f1;f1; (float) -0:846 Function Parameters: -0:846 'fresnel' (in float) -0:846 'transparency' (in float) -0:848 Sequence -0:848 Branch: Return with expression -0:848 add (float) -0:848 'fresnel' (in float) -0:848 'transparency' (in float) -0:850 Function Definition: GetAlphaFrom_PlasticPerspex(vf3; (float) -0:850 Function Parameters: -0:850 'diffuseTerm' (in 3-component vector of float) -0:852 Sequence -0:852 Branch: Return with expression -0:852 component-wise multiply (float) -0:852 0.700000 -0:852 add (float) -0:852 direct index (float) -0:852 'diffuseTerm' (in 3-component vector of float) -0:852 0 (const int) -0:852 0.200000 -0:854 Function Definition: GetAlphaFrom_Glass(f1;f1;f1; (float) -0:854 Function Parameters: -0:854 'fMaxSpec' (in float) -0:854 'fresnel' (in float) -0:854 'transparency' (in float) -0:856 Sequence -0:856 Sequence -0:856 move second child to first child (float) -0:856 'specfac' (float) -0:856 Function Call: saturate(f1; (float) -0:856 component-wise multiply (float) -0:856 subtract (float) -0:856 'fMaxSpec' (in float) -0:856 0.480000 -0:856 5.000000 -0:857 Sequence -0:857 move second child to first child (float) -0:857 'fresnelGlass' (float) -0:857 Function Call: saturate(f1; (float) -0:857 component-wise multiply (float) -0:857 component-wise multiply (float) -0:857 'fresnel' (in float) -0:857 'fresnel' (in float) -0:857 0.010000 -0:858 Branch: Return with expression -0:858 add (float) -0:858 component-wise multiply (float) -0:858 Function Call: saturate(f1; (float) -0:858 add (float) -0:858 'fresnelGlass' (float) -0:858 'transparency' (in float) -0:858 subtract (float) -0:858 1.000000 -0:858 'specfac' (float) -0:858 'specfac' (float) -0:860 Function Definition: GetAlpha(vf4;f1;f1;vf3;vf4;b1;i1; (float) -0:860 Function Parameters: -0:860 'matColor' (in 4-component vector of float) -0:860 'fresnel' (in float) -0:860 'transparency' (in float) -0:860 'diffuseTerm' (in 3-component vector of float) -0:860 'specularTerm' (in 4-component vector of float) -0:860 'iMaxSpecW' (in bool) -0:860 'iAlphaType' (in int) -0:862 Sequence -0:862 Test condition and select (void) -0:862 Condition -0:862 Compare Equal (bool) -0:862 'iAlphaType' (in int) -0:862 58 (const int) -0:862 true case -0:864 Sequence -0:864 Branch: Return with expression -0:864 Function Call: GetAlphaFrom_Fresnel(f1; (float) -0:864 'fresnel' (in float) -0:862 false case -0:866 Test condition and select (void) -0:866 Condition -0:866 Compare Equal (bool) -0:866 'iAlphaType' (in int) -0:866 42 (const int) -0:866 true case -0:868 Sequence -0:868 Branch: Return with expression -0:868 Function Call: GetAlphaFrom_FresnelPlusTransparency(f1;f1; (float) -0:868 'fresnel' (in float) -0:868 'transparency' (in float) -0:866 false case -0:870 Test condition and select (void) -0:870 Condition -0:870 Compare Equal (bool) -0:870 'iAlphaType' (in int) -0:870 74 (const int) -0:870 true case -0:872 Sequence -0:872 Branch: Return with expression -0:872 Function Call: GetAlphaFrom_Material(vf4; (float) -0:872 'matColor' (in 4-component vector of float) -0:870 false case -0:874 Test condition and select (void) -0:874 Condition -0:874 Compare Equal (bool) -0:874 'iAlphaType' (in int) -0:874 90 (const int) -0:874 true case -0:876 Sequence -0:876 Branch: Return with expression -0:876 Function Call: GetAlphaFrom_PlasticPerspex(vf3; (float) -0:876 'diffuseTerm' (in 3-component vector of float) -0:874 false case -0:878 Test condition and select (void) -0:878 Condition -0:878 Compare Equal (bool) -0:878 'iAlphaType' (in int) -0:878 122 (const int) -0:878 true case -0:880 Sequence -0:880 Sequence -0:880 move second child to first child (float) -0:880 't' (float) -0:880 Function Call: GetMaxSpecTerm(vf4;b1; (float) -0:880 'specularTerm' (in 4-component vector of float) -0:880 'iMaxSpecW' (in bool) -0:881 Branch: Return with expression -0:881 Function Call: GetAlphaFrom_Glass(f1;f1;f1; (float) -0:881 't' (float) -0:881 'fresnel' (in float) -0:881 'transparency' (in float) -0:878 false case -0:883 Test condition and select (void) -0:883 Condition -0:883 Compare Equal (bool) -0:883 'iAlphaType' (in int) -0:883 106 (const int) -0:883 true case -0:885 Sequence -0:885 Branch: Return with expression -0:885 'transparency' (in float) -0:883 false case -0:889 Sequence -0:889 Branch: Return with expression -0:889 1.000000 -0:895 Function Definition: GetFinalColor(vf3;vf3;vf3;f1; (4-component vector of float) -0:895 Function Parameters: -0:895 'ambiant' (in 3-component vector of float) -0:895 'diffuse' (in 3-component vector of float) -0:895 'specular' (in 3-component vector of float) -0:895 'alpha' (in float) -0:897 Sequence -0:897 Branch: Return with expression -0:897 Construct vec4 (4-component vector of float) -0:897 add (3-component vector of float) -0:897 add (3-component vector of float) -0:897 'ambiant' (in 3-component vector of float) -0:897 'diffuse' (in 3-component vector of float) -0:897 'specular' (in 3-component vector of float) -0:897 'alpha' (in float) -0:899 Function Definition: GetFinalColor_Fac(vf3;vf3;vf3;f1;f1; (4-component vector of float) -0:899 Function Parameters: -0:899 'ambiant' (in 3-component vector of float) -0:899 'diffuse' (in 3-component vector of float) -0:899 'specular' (in 3-component vector of float) -0:899 'facCoef' (in float) -0:899 'alpha' (in float) -0:901 Sequence -0:901 Branch: Return with expression -0:901 Construct vec4 (4-component vector of float) -0:901 add (3-component vector of float) -0:901 vector-scale (3-component vector of float) -0:901 subtract (float) -0:901 1.000000 -0:901 'facCoef' (in float) -0:901 add (3-component vector of float) -0:901 'ambiant' (in 3-component vector of float) -0:901 'diffuse' (in 3-component vector of float) -0:901 vector-scale (3-component vector of float) -0:901 'facCoef' (in float) -0:901 'specular' (in 3-component vector of float) -0:901 'alpha' (in float) -0:903 Function Definition: GetFinalColor_Fac_SaturateAD_ModifyAD(vf3;vf3;vf3;f1;vf3;f1; (4-component vector of float) -0:903 Function Parameters: -0:903 'ambiant' (in 3-component vector of float) -0:903 'diffuse' (in 3-component vector of float) -0:903 'specular' (in 3-component vector of float) -0:903 'facCoef' (in float) -0:903 'modify' (in 3-component vector of float) -0:903 'alpha' (in float) -0:905 Sequence -0:905 Branch: Return with expression -0:905 Construct vec4 (4-component vector of float) -0:905 add (3-component vector of float) -0:905 component-wise multiply (3-component vector of float) -0:905 vector-scale (3-component vector of float) -0:905 subtract (float) -0:905 1.000000 -0:905 'facCoef' (in float) -0:905 'modify' (in 3-component vector of float) -0:905 Function Call: saturateLight(vf3; (3-component vector of float) -0:905 add (3-component vector of float) -0:905 'ambiant' (in 3-component vector of float) -0:905 'diffuse' (in 3-component vector of float) -0:905 vector-scale (3-component vector of float) -0:905 'facCoef' (in float) -0:905 'specular' (in 3-component vector of float) -0:905 'alpha' (in float) -0:907 Function Definition: GetFinalColor_SaturateAD_ModifyAD(vf3;vf3;vf3;vf3;f1; (4-component vector of float) -0:907 Function Parameters: -0:907 'ambiant' (in 3-component vector of float) -0:907 'diffuse' (in 3-component vector of float) -0:907 'specular' (in 3-component vector of float) -0:907 'modify' (in 3-component vector of float) -0:907 'alpha' (in float) -0:909 Sequence -0:909 Branch: Return with expression -0:909 Construct vec4 (4-component vector of float) -0:909 add (3-component vector of float) -0:909 component-wise multiply (3-component vector of float) -0:909 'modify' (in 3-component vector of float) -0:909 Function Call: saturateLight(vf3; (3-component vector of float) -0:909 add (3-component vector of float) -0:909 'ambiant' (in 3-component vector of float) -0:909 'diffuse' (in 3-component vector of float) -0:909 'specular' (in 3-component vector of float) -0:909 'alpha' (in float) -0:911 Function Definition: GetFinalColor_ModifyADS(vf3;vf3;vf3;vf3;f1; (4-component vector of float) -0:911 Function Parameters: -0:911 'ambiant' (in 3-component vector of float) -0:911 'diffuse' (in 3-component vector of float) -0:911 'specular' (in 3-component vector of float) -0:911 'modify' (in 3-component vector of float) -0:911 'alpha' (in float) -0:913 Sequence -0:913 Branch: Return with expression -0:913 Construct vec4 (4-component vector of float) -0:913 component-wise multiply (3-component vector of float) -0:913 'modify' (in 3-component vector of float) -0:913 add (3-component vector of float) -0:913 Function Call: saturateLight(vf3; (3-component vector of float) -0:913 add (3-component vector of float) -0:913 'ambiant' (in 3-component vector of float) -0:913 'diffuse' (in 3-component vector of float) -0:913 'specular' (in 3-component vector of float) -0:913 'alpha' (in float) -0:915 Function Definition: GetFinalColor_Illum(vf3;vf3;f1; (4-component vector of float) -0:915 Function Parameters: -0:915 'ambiant' (in 3-component vector of float) -0:915 'diffuseAndSpecular' (in 3-component vector of float) -0:915 'alpha' (in float) -0:917 Sequence -0:917 Branch: Return with expression -0:917 Construct vec4 (4-component vector of float) -0:917 add (3-component vector of float) -0:917 'ambiant' (in 3-component vector of float) -0:917 'diffuseAndSpecular' (in 3-component vector of float) -0:917 'alpha' (in float) -0:921 Function Definition: GetShadowColor(sS21;vf3;f1; (float) -0:921 Function Parameters: -0:921 'shadowMap' (in sampler2DShadow) -0:921 'shadowUV' (in 3-component vector of float) -0:921 'mapScale' (in float) -0:923 Sequence -0:923 Sequence -0:923 move second child to first child (float) -0:923 'shadowColor' (float) -0:923 direct index (float) -0:923 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:923 'shadowMap' (in sampler2DShadow) -0:923 add (3-component vector of float) -0:923 'shadowUV' (in 3-component vector of float) -0:923 vector-scale (3-component vector of float) -0:923 -1.500000 -0:923 -1.500000 -0:923 0.000000 -0:923 'mapScale' (in float) -0:923 0 (const int) -0:924 add second child into first child (float) -0:924 'shadowColor' (float) -0:924 direct index (float) -0:924 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:924 'shadowMap' (in sampler2DShadow) -0:924 add (3-component vector of float) -0:924 'shadowUV' (in 3-component vector of float) -0:924 vector-scale (3-component vector of float) -0:924 -1.500000 -0:924 -0.500000 -0:924 0.000000 -0:924 'mapScale' (in float) -0:924 0 (const int) -0:925 add second child into first child (float) -0:925 'shadowColor' (float) -0:925 direct index (float) -0:925 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:925 'shadowMap' (in sampler2DShadow) -0:925 add (3-component vector of float) -0:925 'shadowUV' (in 3-component vector of float) -0:925 vector-scale (3-component vector of float) -0:925 -1.500000 -0:925 0.500000 -0:925 0.000000 -0:925 'mapScale' (in float) -0:925 0 (const int) -0:926 add second child into first child (float) -0:926 'shadowColor' (float) -0:926 direct index (float) -0:926 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:926 'shadowMap' (in sampler2DShadow) -0:926 add (3-component vector of float) -0:926 'shadowUV' (in 3-component vector of float) -0:926 vector-scale (3-component vector of float) -0:926 -1.500000 -0:926 1.500000 -0:926 0.000000 -0:926 'mapScale' (in float) -0:926 0 (const int) -0:928 add second child into first child (float) -0:928 'shadowColor' (float) -0:928 direct index (float) -0:928 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:928 'shadowMap' (in sampler2DShadow) -0:928 add (3-component vector of float) -0:928 'shadowUV' (in 3-component vector of float) -0:928 vector-scale (3-component vector of float) -0:928 -0.500000 -0:928 -1.500000 -0:928 0.000000 -0:928 'mapScale' (in float) -0:928 0 (const int) -0:929 add second child into first child (float) -0:929 'shadowColor' (float) -0:929 direct index (float) -0:929 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:929 'shadowMap' (in sampler2DShadow) -0:929 add (3-component vector of float) -0:929 'shadowUV' (in 3-component vector of float) -0:929 vector-scale (3-component vector of float) -0:929 -0.500000 -0:929 -0.500000 -0:929 0.000000 -0:929 'mapScale' (in float) -0:929 0 (const int) -0:930 add second child into first child (float) -0:930 'shadowColor' (float) -0:930 direct index (float) -0:930 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:930 'shadowMap' (in sampler2DShadow) -0:930 add (3-component vector of float) -0:930 'shadowUV' (in 3-component vector of float) -0:930 vector-scale (3-component vector of float) -0:930 -0.500000 -0:930 0.500000 -0:930 0.000000 -0:930 'mapScale' (in float) -0:930 0 (const int) -0:931 add second child into first child (float) -0:931 'shadowColor' (float) -0:931 direct index (float) -0:931 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:931 'shadowMap' (in sampler2DShadow) -0:931 add (3-component vector of float) -0:931 'shadowUV' (in 3-component vector of float) -0:931 vector-scale (3-component vector of float) -0:931 -0.500000 -0:931 1.500000 -0:931 0.000000 -0:931 'mapScale' (in float) -0:931 0 (const int) -0:933 add second child into first child (float) -0:933 'shadowColor' (float) -0:933 direct index (float) -0:933 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:933 'shadowMap' (in sampler2DShadow) -0:933 add (3-component vector of float) -0:933 'shadowUV' (in 3-component vector of float) -0:933 vector-scale (3-component vector of float) -0:933 0.500000 -0:933 -1.500000 -0:933 0.000000 -0:933 'mapScale' (in float) -0:933 0 (const int) -0:934 add second child into first child (float) -0:934 'shadowColor' (float) -0:934 direct index (float) -0:934 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:934 'shadowMap' (in sampler2DShadow) -0:934 add (3-component vector of float) -0:934 'shadowUV' (in 3-component vector of float) -0:934 vector-scale (3-component vector of float) -0:934 0.500000 -0:934 -0.500000 -0:934 0.000000 -0:934 'mapScale' (in float) -0:934 0 (const int) -0:935 add second child into first child (float) -0:935 'shadowColor' (float) -0:935 direct index (float) -0:935 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:935 'shadowMap' (in sampler2DShadow) -0:935 add (3-component vector of float) -0:935 'shadowUV' (in 3-component vector of float) -0:935 vector-scale (3-component vector of float) -0:935 0.500000 -0:935 0.500000 -0:935 0.000000 -0:935 'mapScale' (in float) -0:935 0 (const int) -0:936 add second child into first child (float) -0:936 'shadowColor' (float) -0:936 direct index (float) -0:936 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:936 'shadowMap' (in sampler2DShadow) -0:936 add (3-component vector of float) -0:936 'shadowUV' (in 3-component vector of float) -0:936 vector-scale (3-component vector of float) -0:936 0.500000 -0:936 1.500000 -0:936 0.000000 -0:936 'mapScale' (in float) -0:936 0 (const int) -0:938 add second child into first child (float) -0:938 'shadowColor' (float) -0:938 direct index (float) -0:938 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:938 'shadowMap' (in sampler2DShadow) -0:938 add (3-component vector of float) -0:938 'shadowUV' (in 3-component vector of float) -0:938 vector-scale (3-component vector of float) -0:938 1.500000 -0:938 -1.500000 -0:938 0.000000 -0:938 'mapScale' (in float) -0:938 0 (const int) -0:939 add second child into first child (float) -0:939 'shadowColor' (float) -0:939 direct index (float) -0:939 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:939 'shadowMap' (in sampler2DShadow) -0:939 add (3-component vector of float) -0:939 'shadowUV' (in 3-component vector of float) -0:939 vector-scale (3-component vector of float) -0:939 1.500000 -0:939 -0.500000 -0:939 0.000000 -0:939 'mapScale' (in float) -0:939 0 (const int) -0:940 add second child into first child (float) -0:940 'shadowColor' (float) -0:940 direct index (float) -0:940 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:940 'shadowMap' (in sampler2DShadow) -0:940 add (3-component vector of float) -0:940 'shadowUV' (in 3-component vector of float) -0:940 vector-scale (3-component vector of float) -0:940 1.500000 -0:940 0.500000 -0:940 0.000000 -0:940 'mapScale' (in float) -0:940 0 (const int) -0:941 add second child into first child (float) -0:941 'shadowColor' (float) -0:941 direct index (float) -0:941 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:941 'shadowMap' (in sampler2DShadow) -0:941 add (3-component vector of float) -0:941 'shadowUV' (in 3-component vector of float) -0:941 vector-scale (3-component vector of float) -0:941 1.500000 -0:941 1.500000 -0:941 0.000000 -0:941 'mapScale' (in float) -0:941 0 (const int) -0:942 Branch: Return with expression -0:942 divide (float) -0:942 'shadowColor' (float) -0:942 16.000000 -0:947 Function Definition: GetShadowColorLow(sS21;vf3;f1; (float) -0:947 Function Parameters: -0:947 'shadowMap' (in sampler2DShadow) -0:947 'shadowUV' (in 3-component vector of float) -0:947 'mapScale' (in float) -0:949 Sequence -0:949 Sequence -0:949 move second child to first child (float) -0:949 'shadowColor' (float) -0:949 direct index (float) -0:949 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:949 'shadowMap' (in sampler2DShadow) -0:949 add (3-component vector of float) -0:949 'shadowUV' (in 3-component vector of float) -0:949 vector-scale (3-component vector of float) -0:949 -0.500000 -0:949 -0.500000 -0:949 0.000000 -0:949 'mapScale' (in float) -0:949 0 (const int) -0:950 add second child into first child (float) -0:950 'shadowColor' (float) -0:950 direct index (float) -0:950 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:950 'shadowMap' (in sampler2DShadow) -0:950 add (3-component vector of float) -0:950 'shadowUV' (in 3-component vector of float) -0:950 vector-scale (3-component vector of float) -0:950 -0.500000 -0:950 0.500000 -0:950 0.000000 -0:950 'mapScale' (in float) -0:950 0 (const int) -0:951 add second child into first child (float) -0:951 'shadowColor' (float) -0:951 direct index (float) -0:951 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:951 'shadowMap' (in sampler2DShadow) -0:951 add (3-component vector of float) -0:951 'shadowUV' (in 3-component vector of float) -0:951 vector-scale (3-component vector of float) -0:951 0.500000 -0:951 -0.500000 -0:951 0.000000 -0:951 'mapScale' (in float) -0:951 0 (const int) -0:952 add second child into first child (float) -0:952 'shadowColor' (float) -0:952 direct index (float) -0:952 Function Call: shadow2D(sS21;vf3; (4-component vector of float) -0:952 'shadowMap' (in sampler2DShadow) -0:952 add (3-component vector of float) -0:952 'shadowUV' (in 3-component vector of float) -0:952 vector-scale (3-component vector of float) -0:952 0.500000 -0:952 0.500000 -0:952 0.000000 -0:952 'mapScale' (in float) -0:952 0 (const int) -0:953 Branch: Return with expression -0:953 divide (float) -0:953 'shadowColor' (float) -0:953 4.000000 -0:958 Function Definition: getMixColor(vf4;vf4;f1;vf3;vf3; (4-component vector of float) -0:958 Function Parameters: -0:958 'matColor' (in 4-component vector of float) -0:958 'matColor2' (in 4-component vector of float) -0:958 'colorMixFactor' (in float) -0:958 'eNormal' (in 3-component vector of float) -0:958 'eyeVector' (in 3-component vector of float) -0:960 Sequence -0:960 Sequence -0:960 move second child to first child (float) -0:960 'cpdot' (float) -0:960 max (float) -0:960 Absolute value (float) -0:960 dot-product (float) -0:960 'eNormal' (in 3-component vector of float) -0:960 'eyeVector' (in 3-component vector of float) -0:960 0.010000 -0:961 move second child to first child (float) -0:961 'cpdot' (float) -0:961 clamp (float) -0:961 subtract (float) -0:961 component-wise multiply (float) -0:961 1.200000 -0:961 pow (float) -0:961 'cpdot' (float) -0:961 'colorMixFactor' (in float) -0:961 0.100000 -0:961 0.000000 -0:961 1.000000 -0:962 Branch: Return with expression -0:962 mix (4-component vector of float) -0:962 'matColor2' (in 4-component vector of float) -0:962 'matColor' (in 4-component vector of float) -0:962 'cpdot' (float) -0:1002 Function Definition: main( (void) -0:1002 Function Parameters: -0:1005 Sequence -0:1005 Sequence -0:1005 move second child to first child (2-component vector of float) -0:1005 'texCoords' (2-component vector of float) -0:1005 0.000000 -0:1005 0.000000 -0:1012 Sequence -0:1012 move second child to first child (3-component vector of float) -0:1012 'tangent' (3-component vector of float) -0:1012 normalize (3-component vector of float) -0:1012 'v_Tangent' (smooth in 3-component vector of float) -0:1016 Sequence -0:1016 move second child to first child (3X3 matrix of float) -0:1016 't2eMatrixTBN' (3X3 matrix of float) -0:1016 Function Call: t2eGetMatrixTBN(mf33;vf3;vf3;b1; (3X3 matrix of float) -0:1016 'gl_NormalMatrix' (uniform 3X3 matrix of float) -0:1016 'v_Normal' (smooth in 3-component vector of float) -0:1016 'tangent' (3-component vector of float) -0:1016 Compare Not Equal (bool) -0:1016 'doubleSided' (uniform float) -0:1016 0.000000 -0:1113 Sequence -0:1113 move second child to first child (2-component vector of float) -0:1113 'newTexCoord' (2-component vector of float) -0:1113 'texCoords' (2-component vector of float) -0:1134 Sequence -0:1134 move second child to first child (3-component vector of float) -0:1134 'tBumpNormal' (3-component vector of float) -0:1134 direct index (3-component vector of float) -0:1134 't2eMatrixTBN' (3X3 matrix of float) -0:1134 2 (const int) -0:1145 Sequence -0:1145 move second child to first child (4-component vector of float) -0:1145 'mixColor' (4-component vector of float) -0:1145 'matColor' (uniform 4-component vector of float) -0:1148 Sequence -0:1148 move second child to first child (float) -0:1148 'fresnelColor' (float) -0:1148 0.000000 -0:1158 Sequence -0:1158 move second child to first child (3-component vector of float) -0:1158 'lightNormal' (3-component vector of float) -0:1158 'tBumpNormal' (3-component vector of float) -0:? Sequence -0:1202 move second child to first child (float) -0:1202 'l_reflectModifier' (float) -0:1202 'reflectModifier' (uniform float) -0:1210 Sequence -0:1210 move second child to first child (3-component vector of float) -0:1210 'diffuseLight' (3-component vector of float) -0:1210 0.000000 -0:1210 0.000000 -0:1210 0.000000 -0:1211 Sequence -0:1211 move second child to first child (4-component vector of float) -0:1211 'specularLight' (4-component vector of float) -0:1211 0.000000 -0:1211 0.000000 -0:1211 0.000000 -0:1211 0.000000 -0:1212 Sequence -0:1212 move second child to first child (4-component vector of float) -0:1212 'microFlakeSpec' (4-component vector of float) -0:1212 0.000000 -0:1212 0.000000 -0:1212 0.000000 -0:1212 0.000000 -0:1217 Sequence -0:1217 move second child to first child (3-component vector of float) -0:1217 'tLightDir' (3-component vector of float) -0:1217 0.000000 -0:1217 0.000000 -0:1217 1.000000 -0:1218 Sequence -0:1218 move second child to first child (3-component vector of float) -0:1218 'tHalfVector' (3-component vector of float) -0:1218 0.000000 -0:1218 0.000000 -0:1218 -1.000000 -0:1230 Sequence -0:1230 Sequence -0:1230 move second child to first child (3-component vector of float) -0:1230 'tLightDir' (3-component vector of float) -0:1230 Function Call: eGetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:1230 Construct vec3 (3-component vector of float) -0:1230 'lightDir0' (uniform 4-component vector of float) -0:1230 'v_PositionEyeSpace' (smooth in 3-component vector of float) -0:1230 direct index (float) -0:1230 'lightType' (uniform 4-component vector of float) -0:1230 0 (const int) -0:1231 move second child to first child (3-component vector of float) -0:1231 'tHalfVector' (3-component vector of float) -0:1231 Function Call: eGetHalfVector(vf3;vf3; (3-component vector of float) -0:1231 'tLightDir' (3-component vector of float) -0:1231 'v_EyeDirection' (smooth in 3-component vector of float) -0:1236 Function Call: AddSpecularAndDiffuse(vf3;vf3;vf3;i1;vf3;vf3;f1;b1;b1;vf3;vf4;f1; (void) -0:1233 'lightNormal' (3-component vector of float) -0:1234 'tLightDir' (3-component vector of float) -0:1234 Construct vec3 (3-component vector of float) -0:1234 'lightColor0' (uniform 4-component vector of float) -0:1234 26 (const int) -0:1235 'tHalfVector' (3-component vector of float) -0:1235 Construct vec3 (3-component vector of float) -0:1235 'lightSpec0' (uniform 4-component vector of float) -0:1235 direct index (float) -0:1235 'specularMaterial' (uniform 4-component vector of float) -0:1235 3 (const int) -0:1235 false (const bool) -0:1235 false (const bool) -0:1236 'diffuseLight' (3-component vector of float) -0:1236 'specularLight' (4-component vector of float) -0:1236 'transparency' (uniform float) -0:1250 Sequence -0:1250 Test condition and select (void) -0:1250 Condition -0:1250 Compare Greater Than (bool) -0:1250 'isDynamicShadowVisible' (uniform float) -0:1250 0.000000 -0:1250 true case -0:1252 Sequence -0:1252 Sequence -0:1252 move second child to first child (float) -0:1252 'shadowColor' (float) -0:1252 Function Call: GetShadowColor(sS21;vf3;f1; (float) -0:1252 'shadowMap2D' (uniform sampler2DShadow) -0:1252 vector swizzle (3-component vector of float) -0:1252 'v_projCoordSM' (smooth in 4-component vector of float) -0:1252 Sequence -0:1252 0 (const int) -0:1252 1 (const int) -0:1252 2 (const int) -0:1252 'shadowMapScale' (uniform float) -0:1258 vector scale second child into first child (3-component vector of float) -0:1258 vector swizzle (3-component vector of float) -0:1258 'diffuseLight' (3-component vector of float) -0:1258 Sequence -0:1258 0 (const int) -0:1258 1 (const int) -0:1258 2 (const int) -0:1258 'shadowColor' (float) -0:1259 vector scale second child into first child (3-component vector of float) -0:1259 vector swizzle (3-component vector of float) -0:1259 'specularLight' (4-component vector of float) -0:1259 Sequence -0:1259 0 (const int) -0:1259 1 (const int) -0:1259 2 (const int) -0:1259 'shadowColor' (float) -0:1299 Sequence -0:1299 Sequence -0:1299 move second child to first child (3-component vector of float) -0:1299 'tLightDir' (3-component vector of float) -0:1299 Function Call: eGetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:1299 Construct vec3 (3-component vector of float) -0:1299 'lightDir1' (uniform 4-component vector of float) -0:1299 'v_PositionEyeSpace' (smooth in 3-component vector of float) -0:1299 direct index (float) -0:1299 'lightType' (uniform 4-component vector of float) -0:1299 1 (const int) -0:1300 move second child to first child (3-component vector of float) -0:1300 'tHalfVector' (3-component vector of float) -0:1300 Function Call: eGetHalfVector(vf3;vf3; (3-component vector of float) -0:1300 'tLightDir' (3-component vector of float) -0:1300 'v_EyeDirection' (smooth in 3-component vector of float) -0:1305 Function Call: AddSpecularAndDiffuse(vf3;vf3;vf3;i1;vf3;vf3;f1;b1;b1;vf3;vf4;f1; (void) -0:1302 'lightNormal' (3-component vector of float) -0:1303 'tLightDir' (3-component vector of float) -0:1303 Construct vec3 (3-component vector of float) -0:1303 'lightColor1' (uniform 4-component vector of float) -0:1303 26 (const int) -0:1304 'tHalfVector' (3-component vector of float) -0:1304 Construct vec3 (3-component vector of float) -0:1304 'lightSpec1' (uniform 4-component vector of float) -0:1304 direct index (float) -0:1304 'specularMaterial' (uniform 4-component vector of float) -0:1304 3 (const int) -0:1304 false (const bool) -0:1304 false (const bool) -0:1305 'diffuseLight' (3-component vector of float) -0:1305 'specularLight' (4-component vector of float) -0:1305 'transparency' (uniform float) -0:1323 Sequence -0:1323 Sequence -0:1323 move second child to first child (3-component vector of float) -0:1323 'tLightDir' (3-component vector of float) -0:1323 Function Call: eGetLightDir_DP(vf3;vf3;f1; (3-component vector of float) -0:1323 Construct vec3 (3-component vector of float) -0:1323 'lightDir2' (uniform 4-component vector of float) -0:1323 'v_PositionEyeSpace' (smooth in 3-component vector of float) -0:1323 direct index (float) -0:1323 'lightType' (uniform 4-component vector of float) -0:1323 2 (const int) -0:1324 move second child to first child (3-component vector of float) -0:1324 'tHalfVector' (3-component vector of float) -0:1324 Function Call: eGetHalfVector(vf3;vf3; (3-component vector of float) -0:1324 'tLightDir' (3-component vector of float) -0:1324 'v_EyeDirection' (smooth in 3-component vector of float) -0:1329 Function Call: AddSpecularAndDiffuse(vf3;vf3;vf3;i1;vf3;vf3;f1;b1;b1;vf3;vf4;f1; (void) -0:1326 'lightNormal' (3-component vector of float) -0:1327 'tLightDir' (3-component vector of float) -0:1327 Construct vec3 (3-component vector of float) -0:1327 'lightColor2' (uniform 4-component vector of float) -0:1327 26 (const int) -0:1328 'tHalfVector' (3-component vector of float) -0:1328 Construct vec3 (3-component vector of float) -0:1328 'lightSpec2' (uniform 4-component vector of float) -0:1328 direct index (float) -0:1328 'specularMaterial' (uniform 4-component vector of float) -0:1328 3 (const int) -0:1328 false (const bool) -0:1328 false (const bool) -0:1329 'diffuseLight' (3-component vector of float) -0:1329 'specularLight' (4-component vector of float) -0:1329 'transparency' (uniform float) -0:1341 move second child to first child (3-component vector of float) -0:1341 vector swizzle (3-component vector of float) -0:1341 'specularTerm' (4-component vector of float) -0:1341 Sequence -0:1341 0 (const int) -0:1341 1 (const int) -0:1341 2 (const int) -0:1341 Function Call: GetSpecularTerm(vf3;vf3; (3-component vector of float) -0:1341 Construct vec3 (3-component vector of float) -0:1341 'specularLight' (4-component vector of float) -0:1341 vector-scale (3-component vector of float) -0:1341 Construct vec3 (3-component vector of float) -0:1341 'specularMaterial' (uniform 4-component vector of float) -0:1341 'specularLightModifier' (uniform float) -0:1369 Sequence -0:1369 Sequence -0:1369 move second child to first child (float) -0:1369 'alpha' (float) -0:1369 'transparency' (uniform float) -0:1374 Sequence -0:1374 move second child to first child (3-component vector of float) -0:1374 'ambientAndDiffuseModifier' (3-component vector of float) -0:1374 1.000000 -0:1374 1.000000 -0:1374 1.000000 -0:1377 Sequence -0:1377 move second child to first child (3-component vector of float) -0:1377 'ambientAndDiffuseModifier' (3-component vector of float) -0:1377 0.000000 -0:1377 0.000000 -0:1377 0.000000 -0:1412 Sequence -0:1412 add second child into first child (3-component vector of float) -0:1412 'ambientAndDiffuseModifier' (3-component vector of float) -0:1412 subtract (float) -0:1412 1.000000 -0:1412 'l_reflectModifier' (float) -0:1416 multiply second child into first child (3-component vector of float) -0:1416 'ambientAndDiffuseModifier' (3-component vector of float) -0:1416 vector swizzle (3-component vector of float) -0:1416 'mixColor' (4-component vector of float) -0:1416 Sequence -0:1416 0 (const int) -0:1416 1 (const int) -0:1416 2 (const int) -0:? Sequence -0:1429 Sequence -0:1429 move second child to first child (3-component vector of float) -0:1429 'eReflection' (3-component vector of float) -0:1429 Function Call: eGetReflection(vf3;vf3;vf3; (3-component vector of float) -0:1429 direct index (3-component vector of float) -0:1429 't2eMatrixTBN' (3X3 matrix of float) -0:1429 2 (const int) -0:1429 'envEyePosition' (uniform 3-component vector of float) -0:1429 'v_PositionEyeSpace' (smooth in 3-component vector of float) -0:1431 move second child to first child (3-component vector of float) -0:1431 'eReflection' (3-component vector of float) -0:1431 matrix-times-vector (3-component vector of float) -0:1431 'e2lDirectionMat' (uniform 3X3 matrix of float) -0:1431 'eReflection' (3-component vector of float) -0:1434 Sequence -0:1434 Sequence -0:1434 move second child to first child (3-component vector of float) -0:1434 'env' (3-component vector of float) -0:1434 vector swizzle (3-component vector of float) -0:1434 Function Call: GetEnv(vf3; (4-component vector of float) -0:1434 'eReflection' (3-component vector of float) -0:1434 Sequence -0:1434 0 (const int) -0:1434 1 (const int) -0:1434 2 (const int) -0:1435 Sequence -0:1435 move second child to first child (float) -0:1435 'envgs' (float) -0:1435 add (float) -0:1435 component-wise multiply (float) -0:1435 direct index (float) -0:1435 'env' (3-component vector of float) -0:1435 0 (const int) -0:1435 0.300000 -0:1435 component-wise multiply (float) -0:1435 component-wise multiply (float) -0:1435 component-wise multiply (float) -0:1435 direct index (float) -0:1435 'env' (3-component vector of float) -0:1435 1 (const int) -0:1435 0.590000 -0:1435 direct index (float) -0:1435 'env' (3-component vector of float) -0:1435 0 (const int) -0:1435 0.110000 -0:1436 move second child to first child (float) -0:1436 'l_reflectModifier' (float) -0:1436 clamp (float) -0:1436 component-wise multiply (float) -0:1436 component-wise multiply (float) -0:1436 'l_reflectModifier' (float) -0:1436 'envgs' (float) -0:1436 10.000000 -0:1436 'l_reflectModifier' (float) -0:1436 1.000000 -0:1437 add second child into first child (3-component vector of float) -0:1437 'ambientAndDiffuseModifier' (3-component vector of float) -0:1437 vector-scale (3-component vector of float) -0:1437 'l_reflectModifier' (float) -0:1437 'env' (3-component vector of float) -0:1454 move second child to first child (3-component vector of float) -0:1454 'diffuseTerm' (3-component vector of float) -0:1454 vector-scale (3-component vector of float) -0:1454 'diffuseLight' (3-component vector of float) -0:1454 'matDiffuse' (uniform float) -0:1466 move second child to first child (3-component vector of float) -0:1466 'ambientTerm' (3-component vector of float) -0:1466 add (3-component vector of float) -0:1466 vector-scale (3-component vector of float) -0:1466 Construct vec3 (3-component vector of float) -0:1466 'ambientLight' (uniform 4-component vector of float) -0:1466 'matAmbient' (uniform float) -0:1466 Construct vec3 (3-component vector of float) -0:1466 'matEmissivity' (uniform float) -0:1494 vector scale second child into first child (3-component vector of float) -0:1494 'ambientTerm' (3-component vector of float) -0:1494 1.000000 -0:1555 Sequence -0:1555 move second child to first child (4-component vector of float) -0:1555 'finalColor' (4-component vector of float) -0:1559 Function Call: GetFinalColor(vf3;vf3;vf3;f1; (4-component vector of float) -0:1556 component-wise multiply (3-component vector of float) -0:1556 'ambientTerm' (3-component vector of float) -0:1556 'ambientAndDiffuseModifier' (3-component vector of float) -0:1557 component-wise multiply (3-component vector of float) -0:1557 'diffuseTerm' (3-component vector of float) -0:1557 'ambientAndDiffuseModifier' (3-component vector of float) -0:1558 vector swizzle (3-component vector of float) -0:1558 'specularTerm' (4-component vector of float) -0:1558 Sequence -0:1558 0 (const int) -0:1558 1 (const int) -0:1558 2 (const int) -0:1559 'alpha' (float) -0:1592 Sequence -0:1592 Test condition and select (void) -0:1592 Condition -0:1592 Compare Equal (bool) -0:1592 direct index (float) -0:1592 'finalColor' (4-component vector of float) -0:1592 3 (const int) -0:1592 1.000000 -0:1592 true case -0:1594 Sequence -0:1594 move second child to first child (float) -0:1594 direct index (float) -0:1594 'finalColor' (4-component vector of float) -0:1594 3 (const int) -0:1594 clamp (float) -0:1594 subtract (float) -0:1594 1.000000 -0:1594 direct index (float) -0:1594 'v_TexCoord' (smooth in 4-component vector of float) -0:1594 3 (const int) -0:1594 0.000000 -0:1594 1.000000 -0:1592 false case -0:1598 Sequence -0:1598 multiply second child into first child (float) -0:1598 direct index (float) -0:1598 'finalColor' (4-component vector of float) -0:1598 3 (const int) -0:1598 clamp (float) -0:1598 subtract (float) -0:1598 1.000000 -0:1598 component-wise multiply (float) -0:1598 component-wise multiply (float) -0:1598 direct index (float) -0:1598 'v_TexCoord' (smooth in 4-component vector of float) -0:1598 3 (const int) -0:1598 direct index (float) -0:1598 'v_TexCoord' (smooth in 4-component vector of float) -0:1598 3 (const int) -0:1598 direct index (float) -0:1598 'v_TexCoord' (smooth in 4-component vector of float) -0:1598 3 (const int) -0:1598 0.000000 -0:1598 1.000000 -0:1611 move second child to first child (4-component vector of float) -0:1611 'gl_FragColor' (fragColor 4-component vector of float) -0:1611 'finalColor' (4-component vector of float) -0:? Linker Objects -0:? 'matColor' (uniform 4-component vector of float) -0:? 'matColor2' (uniform 4-component vector of float) -0:? 'colorMixFactor' (uniform float) -0:? 'matDiffuse' (uniform float) -0:? 'matEmissivity' (uniform float) -0:? 'matAmbient' (uniform float) -0:? 'specularMaterial' (uniform 4-component vector of float) -0:? 'specularLightModifier' (uniform float) -0:? 'ambientLight' (uniform 4-component vector of float) -0:? 'lightDir0' (uniform 4-component vector of float) -0:? 'lightColor0' (uniform 4-component vector of float) -0:? 'lightSpec0' (uniform 4-component vector of float) -0:? 'lightDir1' (uniform 4-component vector of float) -0:? 'lightColor1' (uniform 4-component vector of float) -0:? 'lightSpec1' (uniform 4-component vector of float) -0:? 'lightDir2' (uniform 4-component vector of float) -0:? 'lightColor2' (uniform 4-component vector of float) -0:? 'lightSpec2' (uniform 4-component vector of float) -0:? 'lightType' (uniform 4-component vector of float) -0:? 'shadowMapScale' (uniform float) -0:? 'isAOShadowVisible' (uniform float) -0:? 'isDynamicShadowVisible' (uniform float) -0:? 'floorPoint' (uniform 4-component vector of float) -0:? 'floorNormal' (uniform 4-component vector of float) -0:? 'center' (uniform 3-component vector of float) -0:? 'faceWidth' (uniform float) -0:? 'diffuseAverage' (uniform 3-component vector of float) -0:? 'diffuseMapModifier' (uniform 3-component vector of float) -0:? 'e2cCosmeticTextureTransform' (uniform 4X4 matrix of float) -0:? 'envcolorAverage' (uniform 3-component vector of float) -0:? 'envBrightness' (uniform float) -0:? 'envColorWash' (uniform float) -0:? 'envContrast' (uniform float) -0:? 'envEyePosition' (uniform 3-component vector of float) -0:? 'envColor' (uniform 3-component vector of float) -0:? 'reflectModifier' (uniform float) -0:? 'transparency' (uniform float) -0:? 'doubleSided' (uniform float) -0:? 'fresnelCoef1' (uniform float) -0:? 'fresnelCoef2' (uniform float) -0:? 'RimlightColor' (uniform 3-component vector of float) -0:? 'specularColor' (uniform 4-component vector of float) -0:? 'e2lDirectionMat' (uniform 3X3 matrix of float) -0:? 'microFlakeShininess' (uniform float) -0:? 'microFlakeCoef' (uniform float) -0:? 'microFlakeColor' (uniform 4-component vector of float) -0:? 'parallaxOffset' (uniform float) -0:? 'parallaxPrecision' (uniform float) -0:? 'shadowMap2D' (uniform sampler2DShadow) -0:? 'AOTermMap2D' (uniform sampler2D) -0:? 'reflectionMap2D' (uniform sampler2D) -0:? 'envSphericalDiffuse' (uniform sampler2D) -0:? 'envCubicDiffuse' (uniform samplerCube) -0:? 'diffMap2D' (uniform sampler2D) -0:? 'alphaMap' (uniform sampler2D) -0:? 'envCubicSpecular' (uniform samplerCube) -0:? 'envSphericalSpecular' (uniform sampler2D) -0:? 'normalMap2D' (uniform sampler2D) -0:? 'envSphericalBackground' (uniform sampler2D) -0:? 'envCubicBackground' (uniform samplerCube) -0:? 'v_TexCoord' (smooth in 4-component vector of float) -0:? 'v_EyeDirection' (smooth in 3-component vector of float) -0:? 'v_PositionEyeSpace' (smooth in 3-component vector of float) -0:? 'v_Normal' (smooth in 3-component vector of float) -0:? 'v_Tangent' (smooth in 3-component vector of float) -0:? 'v_projCoordSM' (smooth in 4-component vector of float) -0:? 'v_fragCoord' (smooth in 4-component vector of float) -0:? 'v_projCoordRF' (smooth in 4-component vector of float) -0:? 'v_FloorPoint' (smooth in 4-component vector of float) -0:? 'v_patternCoord' (smooth in 2-component vector of float) - diff --git a/Test/baseResults/test.conf b/Test/baseResults/test.conf new file mode 100644 index 0000000000000000000000000000000000000000..2f04420ee2f538e4e6e2241e73dc2045bf9b85bf --- /dev/null +++ b/Test/baseResults/test.conf @@ -0,0 +1,19 @@ +MaxLights 32 +MaxClipPlanes 6 +MaxTextureUnits 32 +MaxTextureCoords 32 +MaxVertexAttribs 64 +MaxVertexUniformComponents 4096 +MaxVaryingFloats 64 +MaxVertexTextureImageUnits 32 +MaxCombinedTextureImageUnits 32 +MaxTextureImageUnits 32 +MaxFragmentUniformComponents 4096 +MaxDrawBuffers 32 +MaxVertexUniformVectors 128 +MaxVaryingVectors 8 +MaxFragmentUniformVectors 16 +MaxVertexOutputVectors 16 +MaxFragmentInputVectors 15 +MinProgramTexelOffset -8 +MaxProgramTexelOffset 7 diff --git a/Test/runtests b/Test/runtests index 3126fca182ea1bca3015785abff5e88ba2909a03..16b5deb6677ebe790cab46d913523ec6707abe1e 100644 --- a/Test/runtests +++ b/Test/runtests @@ -5,9 +5,17 @@ BASEDIR=baseResults EXE=./glslangValidator.exe # -# isolated compilation tests +# configuration file test # +echo running configuration file test +$EXE -c > $TARGETDIR/test.conf +diff -b $BASEDIR/test.conf $TARGETDIR/test.conf +$EXE -i $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out +diff -b $BASEDIR/specExamples.vert.out $TARGETDIR +# +# isolated compilation tests +# while read t; do echo Running $t... b=`basename $t` @@ -18,7 +26,6 @@ done < testlist # # grouped shaders for link tests # - function runLinkTest { echo Running $*... $EXE -i -l $* > $TARGETDIR/$1.out @@ -31,8 +38,8 @@ runLinkTest noMain.vert mains.frag # # multi-threaded test # - echo Comparing single thread to multithread for all tests in current directory... $EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out $EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out diff singleThread.out multiThread.out + diff --git a/Todo.txt b/Todo.txt index 09f9e53fbbfc2be9b03d274cb35bbd9fbe4a7890..75f2c3eac0c80ac3d7dc9c518f8500c8e34a50de 100644 --- a/Todo.txt +++ b/Todo.txt @@ -1,6 +1,8 @@ Current functionality level: ESSL 3.0 Link Validation + + provide input config file for setting limits + - also consider spitting out measures of complexity - ensure no static references thrown away Cross-stage linking - type consistency check of uniform and ins <-> outs, both variables and blocks, stage-specific arrayness matching @@ -13,6 +15,7 @@ Link Validation - 1.3: deprecated mixing fixed vertex/fragment stage with programmable fragment/vertex stage. - 4.3: remove cross-version linking restrictions. - 4.3: Allow mismatches in interpolation and auxiliary qualification across stages. + - 4.4: A stage contains two different blocks, each with no instance name, where the blocks contain a member with the same name. Intra-stage linking - exactly one main - type consistency check of uniforms, globals, ins, and outs, both variables and blocks @@ -33,6 +36,8 @@ Link Validation - 4.3: Be clear that early_fragment_tests is only needed in one fragment-stage compilation unit. - 4.3: Be clear that implicit array sizing is only within a stage, not cross stage. - 4.4: overlapping transform/feedback offsets, offset/stride overflow checks, and stride matching + - 4.4: If gl_FragCoord is redeclared in any fragment shader in a program, it must be redeclared in all the fragment shaders in that program that have a static use gl_FragCoord + - 4.4: An interface contains two different blocks, each with no instance name, where the blocks contain a member with the same name. Shader Functionality to Implement/Finish ESSL 3.0 @@ -116,7 +121,6 @@ Shader Functionality to Implement/Finish - Add 64-bit floating-point attributes for vertex shader inputs. - Support viewport arrays so where the geometry shader selects which viewport array will transform its output. GLSL 4.2 - - Add 420-style function signature matching rules (or did this start in 4.0?) + Move these previously deprecated features to be only in the compatibility profile: + The keyword attribute for vertex shader inputs. (Use in instead.) + The keyword varying for inputs and outputs. (Use in and out instead.) @@ -153,12 +157,9 @@ Shader Functionality to Implement/Finish - Allow swizzle operations on scalars. - Positive signed decimal literals, as well as octal and hexadecimal, can set all 32 bits. This includes setting the sign bit to create a negative value. - Make GLSL consistent with the API regarding user clipping, by no longer referring to gl_Positionwhen gl_ClipVertex is not written. Rather, user clipping becomes undefined. - - Minor consistency fixes, corrections - - Consistently state structures have members not fields. The period ( . ) is still called the field selector, for all its multiple uses. - - Remove comment that there is no communication between instantiations of a shader. - - Clarified that a comma sequence-operator expression cannot be a constant expression. E.g., “(2,3)” is not allowed, semantically, as a valid constant expression 3, even though it is an expression that will evaluate to 3. - - Use vec2instead of vec3for coordinate in textureGather*(sampler2DRect,...). - - Clarify that textureGatherOffset() can take non-constants for the offsets. + - Clarified that a comma sequence-operator expression cannot be a constant expression. E.g., “(2,3)” is not allowed, semantically, as a valid constant expression 3, even though it is an expression that will evaluate to 3. + - Use vec2 instead of vec3 for coordinate in textureGather*(sampler2DRect,...). + - Clarify that textureGatherOffset() can take non-constants for the offsets. GLSL 4.3 - Add shader storage bufferobjects, as per the ARB_shader_storage_buffer_object extension. This includes 1) allowing the last member of a storage buffer block to be an array that does not