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