From 4774d5ca15baf066e7f73f113e5402dfa40c55af Mon Sep 17 00:00:00 2001 From: John Kessenich <cepheus@frii.com> Date: Fri, 22 Feb 2013 19:06:20 +0000 Subject: [PATCH] Rationalize original texture functions per stage. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20685 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- glslang/MachineIndependent/Initialize.cpp | 110 ++++++++-------------- 1 file changed, 38 insertions(+), 72 deletions(-) diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 3075d5e8b..2bd39d81c 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -389,64 +389,31 @@ void TBuiltIns::initialize(int version, EProfile profile) s.append(TString("\n")); // - // Texture Functions. + // Original style texture Functions existing in both stages. + // (Per-stage functions below.) // if (profile != EEsProfile || version == 100) { s.append(TString("vec4 texture2D(sampler2D, vec2);")); - s.append(TString("vec4 texture2D(sampler2D, vec2, float);")); s.append(TString("vec4 texture2DProj(sampler2D, vec3);")); s.append(TString("vec4 texture2DProj(sampler2D, vec4);")); - s.append(TString("vec4 texture2DProj(sampler2D, vec3, float);")); - s.append(TString("vec4 texture2DProj(sampler2D, vec4, float);")); - - s.append(TString("vec4 texture2DLod(sampler2D, vec2, float);")); - - s.append(TString("vec4 texture2DProjLod(sampler2D, vec3, float);")); - s.append(TString("vec4 texture2DProjLod(sampler2D, vec4, float);")); s.append(TString("vec4 textureCube(samplerCube, vec3);")); - s.append(TString("vec4 textureCube(samplerCube, vec3, float);")); - - s.append(TString("vec4 textureCubeLod(samplerCube, vec3, float);")); } if (profile != EEsProfile && version > 100) { s.append(TString("vec4 texture1D(sampler1D, float);")); - s.append(TString("vec4 texture1D(sampler1D, float, float);")); s.append(TString("vec4 texture1DProj(sampler1D, vec2);")); s.append(TString("vec4 texture1DProj(sampler1D, vec4);")); - s.append(TString("vec4 texture1DProj(sampler1D, vec2, float);")); - s.append(TString("vec4 texture1DProj(sampler1D, vec4, float);")); - s.append(TString("vec4 texture1DProjLod(sampler1D, vec2, float);")); - s.append(TString("vec4 texture1DProjLod(sampler1D, vec4, float);")); - s.append(TString("vec4 texture3D(sampler3D, vec3);")); - s.append(TString("vec4 texture3D(sampler3D, vec3, float);")); - s.append(TString("vec4 texture3DProj(sampler3D, vec4);")); - s.append(TString("vec4 texture3DProj(sampler3D, vec4, float);")); - - s.append(TString("vec4 texture3DLod(sampler3D, vec3, float);")); - - s.append(TString("vec4 texture3DProjLod(sampler3D, vec4, float);")); s.append(TString("vec4 shadow1D(sampler1DShadow, vec3);")); - s.append(TString("vec4 shadow1D(sampler1DShadow, vec3, float);")); - s.append(TString("vec4 shadow2D(sampler2DShadow, vec3);")); - s.append(TString("vec4 shadow2D(sampler2DShadow, vec3, float);")); - s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4);")); - s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4, float);")); - s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4);")); - s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4, float);")); - - s.append(TString("vec4 shadow1DProjLod(sampler1DShadow, vec4, float);")); - s.append(TString("vec4 shadow2DProjLod(sampler2DShadow, vec4, float);")); // ARB_texture_rectangle s.append(TString("vec4 texture2DRect(sampler2DRect, vec2);")); @@ -455,7 +422,6 @@ void TBuiltIns::initialize(int version, EProfile profile) s.append(TString("vec4 shadow2DRect(sampler2DRectShadow, vec3);")); s.append(TString("vec4 shadow2DRectProj(sampler2DRectShadow, vec4);")); } - s.append(TString("\n")); // @@ -498,25 +464,25 @@ void TBuiltIns::initialize(int version, EProfile profile) s.append(TString("vec4 ftransform();")); // - // Texture Functions. + // Texture Functions with lod. // - s.append(TString("vec4 texture1DLod(sampler1D sampler, float coord, float lod);")); - s.append(TString("vec4 texture1DProjLod(sampler1D sampler, vec2 coord, float lod);")); - s.append(TString("vec4 texture1DProjLod(sampler1D sampler, vec4 coord, float lod);")); - - s.append(TString("vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod);")); - s.append(TString("vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod);")); - s.append(TString("vec4 texture2DProjLod(sampler2D sampler, vec4 coord, float lod);")); - - s.append(TString("vec4 texture3DLod(sampler3D sampler, vec3 coord, float lod);")); - s.append(TString("vec4 texture3DProjLod(sampler3D sampler, vec4 coord, float lod);")); - s.append(TString("vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod);")); - - s.append(TString("vec4 shadow1DLod(sampler1DShadow sampler, vec3 coord, float lod);")); - s.append(TString("vec4 shadow2DLod(sampler2DShadow sampler, vec3 coord, float lod);")); - s.append(TString("vec4 shadow1DProjLod(sampler1DShadow sampler, vec4 coord, float lod);")); - s.append(TString("vec4 shadow2DProjLod(sampler2DShadow sampler, vec4 coord, float lod);")); - + if (profile != EEsProfile || version == 100) { + s.append(TString("vec4 texture2DLod(sampler2D, vec2, float);")); + s.append(TString("vec4 texture2DProjLod(sampler2D, vec3, float);")); + s.append(TString("vec4 texture2DProjLod(sampler2D, vec4, float);")); + s.append(TString("vec4 textureCubeLod(samplerCube, vec3, float);")); + } + if (profile != EEsProfile && version > 100) { + s.append(TString("vec4 texture1DLod(sampler1D, float, float);")); + s.append(TString("vec4 texture1DProjLod(sampler1D, vec2, float);")); + s.append(TString("vec4 texture1DProjLod(sampler1D, vec4, float);")); + s.append(TString("vec4 texture3DLod(sampler3D, vec3, float);")); + s.append(TString("vec4 texture3DProjLod(sampler3D, vec4, float);")); + s.append(TString("vec4 shadow1DLod(sampler1DShadow, vec3, float);")); + s.append(TString("vec4 shadow2DLod(sampler2DShadow, vec3, float);")); + s.append(TString("vec4 shadow1DProjLod(sampler1DShadow, vec4, float);")); + s.append(TString("vec4 shadow2DProjLod(sampler2DShadow, vec4, float);")); + } s.append(TString("\n")); } { @@ -529,24 +495,25 @@ void TBuiltIns::initialize(int version, EProfile profile) TString& s = BuiltInFunctionsFragment; // - // Texture Functions. + // Texture Functions with bias. // - s.append(TString("vec4 texture1D(sampler1D sampler, float coord, float bias);")); - s.append(TString("vec4 texture1DProj(sampler1D sampler, vec2 coord, float bias);")); - s.append(TString("vec4 texture1DProj(sampler1D sampler, vec4 coord, float bias);")); - - s.append(TString("vec4 texture2D(sampler2D sampler, vec2 coord, float bias);")); - s.append(TString("vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias);")); - s.append(TString("vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias);")); - - s.append(TString("vec4 texture3D(sampler3D sampler, vec3 coord, float bias);")); - s.append(TString("vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias);")); - s.append(TString("vec4 textureCube(samplerCube sampler, vec3 coord, float bias);")); - - s.append(TString("vec4 shadow1D(sampler1DShadow sampler, vec3 coord, float bias);")); - s.append(TString("vec4 shadow2D(sampler2DShadow sampler, vec3 coord, float bias);")); - s.append(TString("vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord, float bias);")); - s.append(TString("vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord, float bias);")); + if (profile != EEsProfile || version == 100) { + s.append(TString("vec4 texture2D(sampler2D, vec2, float);")); + s.append(TString("vec4 texture2DProj(sampler2D, vec3, float);")); + s.append(TString("vec4 texture2DProj(sampler2D, vec4, float);")); + s.append(TString("vec4 textureCube(samplerCube, vec3, float);")); + } + if (profile != EEsProfile && version > 100) { + s.append(TString("vec4 texture1D(sampler1D, float, float);")); + s.append(TString("vec4 texture1DProj(sampler1D, vec2, float);")); + s.append(TString("vec4 texture1DProj(sampler1D, vec4, float);")); + s.append(TString("vec4 texture3D(sampler3D, vec3, float);")); + s.append(TString("vec4 texture3DProj(sampler3D, vec4, float);")); + s.append(TString("vec4 shadow1D(sampler1DShadow, vec3, float);")); + s.append(TString("vec4 shadow2D(sampler2DShadow, vec3, float);")); + s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4, float);")); + s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4, float);")); + } s.append(TString("float dFdx(float p);")); s.append(TString("vec2 dFdx(vec2 p);")); @@ -815,7 +782,6 @@ void TBuiltIns::initialize(int version, EProfile profile) builtInStrings[EShLangVertex].push_back(StandardUniforms); } - void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, EShLanguage language) { // -- GitLab