Fixed some shader flags not compiling

Former-commit-id: 4ae22cf904044b453247b78179083483efebdaf5
This commit is contained in:
Lynix 2013-03-18 21:09:07 +01:00
parent 086408f95f
commit c280457196
1 changed files with 6 additions and 4 deletions

View File

@ -19,6 +19,7 @@ namespace
{ {
bool glsl140 = (NzOpenGL::GetVersion() >= 310); bool glsl140 = (NzOpenGL::GetVersion() >= 310);
//bool useMRT = (glsl140 && NzRenderer::HasCapability(nzRendererCap_MultipleRenderTargets)); //bool useMRT = (glsl140 && NzRenderer::HasCapability(nzRendererCap_MultipleRenderTargets));
bool uvMapping = (flags & nzShaderFlags_DiffuseMapping || flags & nzShaderFlags_NormalMapping || flags & nzShaderFlags_SpecularMapping);
NzString inKW = (glsl140) ? "in" : "varying"; NzString inKW = (glsl140) ? "in" : "varying";
NzString fragmentColorKW = (glsl140) ? "RenderTarget0" : "gl_FragColor"; NzString fragmentColorKW = (glsl140) ? "RenderTarget0" : "gl_FragColor";
@ -102,7 +103,7 @@ namespace
sourceCode += inKW + " vec3 vNormal;\n"; sourceCode += inKW + " vec3 vNormal;\n";
} }
if (flags & nzShaderFlags_DiffuseMapping || flags & nzShaderFlags_NormalMapping) if (uvMapping)
sourceCode += inKW + " vec2 vTexCoord;\n"; sourceCode += inKW + " vec2 vTexCoord;\n";
if (flags & nzShaderFlags_Lighting) if (flags & nzShaderFlags_Lighting)
@ -286,6 +287,7 @@ namespace
NzString BuildVertexShaderSource(nzUInt32 flags) NzString BuildVertexShaderSource(nzUInt32 flags)
{ {
bool glsl140 = (NzOpenGL::GetVersion() >= 310); bool glsl140 = (NzOpenGL::GetVersion() >= 310);
bool uvMapping = (flags & nzShaderFlags_DiffuseMapping || flags & nzShaderFlags_NormalMapping || flags & nzShaderFlags_SpecularMapping);
NzString inKW = (glsl140) ? "in" : "attribute"; NzString inKW = (glsl140) ? "in" : "attribute";
NzString outKW = (glsl140) ? "out" : "varying"; NzString outKW = (glsl140) ? "out" : "varying";
@ -327,7 +329,7 @@ namespace
sourceCode += inKW + " vec3 VertexTangent;\n"; sourceCode += inKW + " vec3 VertexTangent;\n";
} }
if (flags & nzShaderFlags_DiffuseMapping) if (uvMapping)
sourceCode += inKW + " vec2 VertexTexCoord0;\n"; sourceCode += inKW + " vec2 VertexTexCoord0;\n";
sourceCode += '\n'; sourceCode += '\n';
@ -341,7 +343,7 @@ namespace
sourceCode += outKW + " vec3 vNormal;\n"; sourceCode += outKW + " vec3 vNormal;\n";
} }
if (flags & nzShaderFlags_DiffuseMapping || flags & nzShaderFlags_NormalMapping) if (uvMapping)
sourceCode += outKW + " vec2 vTexCoord;\n"; sourceCode += outKW + " vec2 vTexCoord;\n";
if (flags & nzShaderFlags_Lighting) if (flags & nzShaderFlags_Lighting)
@ -388,7 +390,7 @@ namespace
sourceCode += "vNormal = normalize(rotationMatrix * VertexNormal);\n"; sourceCode += "vNormal = normalize(rotationMatrix * VertexNormal);\n";
} }
if (flags & nzShaderFlags_DiffuseMapping || flags & nzShaderFlags_NormalMapping || flags & nzShaderFlags_SpecularMapping) if (uvMapping)
{ {
if (flags & nzShaderFlags_FlipUVs) if (flags & nzShaderFlags_FlipUVs)
sourceCode += "vTexCoord = vec2(VertexTexCoord0.x, 1.0 - VertexTexCoord0.y);\n"; sourceCode += "vTexCoord = vec2(VertexTexCoord0.x, 1.0 - VertexTexCoord0.y);\n";