]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - shader_glsl.h
fix compile error on OSX
[xonotic/darkplaces.git] / shader_glsl.h
index b4f43c2c278d95a4da9f46592805f66e8bdbbbf8..33cbb95e9587f651ded24ad4f8c0146532198c43 100644 (file)
 "      dp_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n"
 "#endif\n"
 "#ifdef USEDIFFUSE\n"
+"# ifdef USEREFLECTCUBE\n"
+"      // suppress texture alpha\n"
+"      dp_FragColor.rgb *= dp_texture2D(Texture_First, TexCoord1).rgb;\n"
+"# else\n"
 "      dp_FragColor *= dp_texture2D(Texture_First, TexCoord1);\n"
+"# endif\n"
 "#endif\n"
 "\n"
 "#ifdef USESPECULAR\n"
 "vec3 GetShadowMapTC2D(vec3 dir)\n"
 "{\n"
 "      vec3 adir = abs(dir);\n"
-"      vec2 aparams = ShadowMap_Parameters.xy / max(max(adir.x, adir.y), adir.z);\n"
+"      vec2 mparams = ShadowMap_Parameters.xy / max(max(adir.x, adir.y), adir.z);\n"
 "      vec4 proj = dp_textureCube(Texture_CubeProjection, dir);\n"
-"      return vec3(mix(dir.xy, dir.zz, proj.xy) * aparams.x + proj.zw * ShadowMap_Parameters.z, aparams.y + ShadowMap_Parameters.w);\n"
+"      return vec3(mix(dir.xy, dir.zz, proj.xy) * mparams.x + proj.zw * ShadowMap_Parameters.z, mparams.y + ShadowMap_Parameters.w);\n"
 "}\n"
 "#  else\n"
 "vec3 GetShadowMapTC2D(vec3 dir)\n"
 "{\n"
-"   vec3 adir = abs(dir);\n"
-"   vec2 aparams = ShadowMap_Parameters.xy / max(max(adir.x, adir.y), adir.z);\n"
-"   vec4 proj = adir.x > adir.y ? (adir.x > adir.z ? vec4(dir.zy, dir.x < 0.0 ? 1.5 : 0.5, 0.5) : vec4(dir.xy, dir.z < 0.0 ? 1.5 : 0.5, 2.5)) :\n" 
-"                                 (adir.y > adir.z ? vec4(dir.xz, dir.y < 0.0 ? 1.5 : 0.5, 1.5) : vec4(dir.xy, dir.z < 0.0 ? 1.5 : 0.5, 2.5));\n"
-"   return vec3(proj.xy * aparams.x + proj.zw * ShadowMap_Parameters.z, aparams.y + ShadowMap_Parameters.w);\n"
+"      vec3 adir = abs(dir);\n"
+"      float m; vec4 proj;\n"
+"      if (adir.x > adir.y) { m = adir.x; proj = vec4(dir.zyx, 0.5); } else { m = adir.y; proj = vec4(dir.xzy, 1.5); }\n"
+"      if (adir.z > m) { m = adir.z; proj = vec4(dir, 2.5); }\n"
+"      vec2 mparams = ShadowMap_Parameters.xy / m;\n"
+"      return vec3(proj.xy * mparams.x + vec2(proj.z < 0.0 ? 1.5 : 0.5, proj.w) * ShadowMap_Parameters.z, mparams.y + ShadowMap_Parameters.w);\n"
 "}\n"
 "#  endif\n"
 "# endif\n"