Commit 4774d5ca by John Kessenich

Rationalize original texture functions per stage.

parent d7f9406f
...@@ -389,64 +389,31 @@ void TBuiltIns::initialize(int version, EProfile profile) ...@@ -389,64 +389,31 @@ void TBuiltIns::initialize(int version, EProfile profile)
s.append(TString("\n")); s.append(TString("\n"));
// //
// Texture Functions. // Original style texture Functions existing in both stages.
// (Per-stage functions below.)
// //
if (profile != EEsProfile || version == 100) { if (profile != EEsProfile || version == 100) {
s.append(TString("vec4 texture2D(sampler2D, vec2);")); 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, vec3);"));
s.append(TString("vec4 texture2DProj(sampler2D, vec4);")); 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);"));
s.append(TString("vec4 textureCube(samplerCube, vec3, float);"));
s.append(TString("vec4 textureCubeLod(samplerCube, vec3, float);"));
} }
if (profile != EEsProfile && version > 100) { if (profile != EEsProfile && version > 100) {
s.append(TString("vec4 texture1D(sampler1D, float);")); 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, vec2);"));
s.append(TString("vec4 texture1DProj(sampler1D, vec4);")); 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);"));
s.append(TString("vec4 texture3D(sampler3D, vec3, float);"));
s.append(TString("vec4 texture3DProj(sampler3D, vec4);")); 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);"));
s.append(TString("vec4 shadow1D(sampler1DShadow, vec3, float);"));
s.append(TString("vec4 shadow2D(sampler2DShadow, vec3);")); 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);"));
s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4, float);"));
s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4);")); 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 // ARB_texture_rectangle
s.append(TString("vec4 texture2DRect(sampler2DRect, vec2);")); s.append(TString("vec4 texture2DRect(sampler2DRect, vec2);"));
...@@ -455,7 +422,6 @@ void TBuiltIns::initialize(int version, EProfile profile) ...@@ -455,7 +422,6 @@ void TBuiltIns::initialize(int version, EProfile profile)
s.append(TString("vec4 shadow2DRect(sampler2DRectShadow, vec3);")); s.append(TString("vec4 shadow2DRect(sampler2DRectShadow, vec3);"));
s.append(TString("vec4 shadow2DRectProj(sampler2DRectShadow, vec4);")); s.append(TString("vec4 shadow2DRectProj(sampler2DRectShadow, vec4);"));
} }
s.append(TString("\n")); s.append(TString("\n"));
// //
...@@ -498,25 +464,25 @@ void TBuiltIns::initialize(int version, EProfile profile) ...@@ -498,25 +464,25 @@ void TBuiltIns::initialize(int version, EProfile profile)
s.append(TString("vec4 ftransform();")); s.append(TString("vec4 ftransform();"));
// //
// Texture Functions. // Texture Functions with lod.
// //
s.append(TString("vec4 texture1DLod(sampler1D sampler, float coord, float lod);")); if (profile != EEsProfile || version == 100) {
s.append(TString("vec4 texture1DProjLod(sampler1D sampler, vec2 coord, float lod);")); s.append(TString("vec4 texture2DLod(sampler2D, vec2, float);"));
s.append(TString("vec4 texture1DProjLod(sampler1D sampler, vec4 coord, float lod);")); s.append(TString("vec4 texture2DProjLod(sampler2D, vec3, float);"));
s.append(TString("vec4 texture2DProjLod(sampler2D, vec4, float);"));
s.append(TString("vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod);")); s.append(TString("vec4 textureCubeLod(samplerCube, vec3, float);"));
s.append(TString("vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod);")); }
s.append(TString("vec4 texture2DProjLod(sampler2D sampler, vec4 coord, float lod);")); if (profile != EEsProfile && version > 100) {
s.append(TString("vec4 texture1DLod(sampler1D, float, float);"));
s.append(TString("vec4 texture3DLod(sampler3D sampler, vec3 coord, float lod);")); s.append(TString("vec4 texture1DProjLod(sampler1D, vec2, float);"));
s.append(TString("vec4 texture3DProjLod(sampler3D sampler, vec4 coord, float lod);")); s.append(TString("vec4 texture1DProjLod(sampler1D, vec4, float);"));
s.append(TString("vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod);")); s.append(TString("vec4 texture3DLod(sampler3D, vec3, float);"));
s.append(TString("vec4 texture3DProjLod(sampler3D, vec4, float);"));
s.append(TString("vec4 shadow1DLod(sampler1DShadow sampler, vec3 coord, float lod);")); s.append(TString("vec4 shadow1DLod(sampler1DShadow, vec3, float);"));
s.append(TString("vec4 shadow2DLod(sampler2DShadow sampler, vec3 coord, float lod);")); s.append(TString("vec4 shadow2DLod(sampler2DShadow, vec3, float);"));
s.append(TString("vec4 shadow1DProjLod(sampler1DShadow sampler, vec4 coord, float lod);")); s.append(TString("vec4 shadow1DProjLod(sampler1DShadow, vec4, float);"));
s.append(TString("vec4 shadow2DProjLod(sampler2DShadow sampler, vec4 coord, float lod);")); s.append(TString("vec4 shadow2DProjLod(sampler2DShadow, vec4, float);"));
}
s.append(TString("\n")); s.append(TString("\n"));
} }
{ {
...@@ -529,24 +495,25 @@ void TBuiltIns::initialize(int version, EProfile profile) ...@@ -529,24 +495,25 @@ void TBuiltIns::initialize(int version, EProfile profile)
TString& s = BuiltInFunctionsFragment; TString& s = BuiltInFunctionsFragment;
// //
// Texture Functions. // Texture Functions with bias.
// //
s.append(TString("vec4 texture1D(sampler1D sampler, float coord, float bias);")); if (profile != EEsProfile || version == 100) {
s.append(TString("vec4 texture1DProj(sampler1D sampler, vec2 coord, float bias);")); s.append(TString("vec4 texture2D(sampler2D, vec2, float);"));
s.append(TString("vec4 texture1DProj(sampler1D sampler, vec4 coord, float bias);")); s.append(TString("vec4 texture2DProj(sampler2D, vec3, float);"));
s.append(TString("vec4 texture2DProj(sampler2D, vec4, float);"));
s.append(TString("vec4 texture2D(sampler2D sampler, vec2 coord, float bias);")); s.append(TString("vec4 textureCube(samplerCube, vec3, float);"));
s.append(TString("vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias);")); }
s.append(TString("vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias);")); if (profile != EEsProfile && version > 100) {
s.append(TString("vec4 texture1D(sampler1D, float, float);"));
s.append(TString("vec4 texture3D(sampler3D sampler, vec3 coord, float bias);")); s.append(TString("vec4 texture1DProj(sampler1D, vec2, float);"));
s.append(TString("vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias);")); s.append(TString("vec4 texture1DProj(sampler1D, vec4, float);"));
s.append(TString("vec4 textureCube(samplerCube sampler, vec3 coord, float bias);")); s.append(TString("vec4 texture3D(sampler3D, vec3, float);"));
s.append(TString("vec4 texture3DProj(sampler3D, vec4, float);"));
s.append(TString("vec4 shadow1D(sampler1DShadow sampler, vec3 coord, float bias);")); s.append(TString("vec4 shadow1D(sampler1DShadow, vec3, float);"));
s.append(TString("vec4 shadow2D(sampler2DShadow sampler, vec3 coord, float bias);")); s.append(TString("vec4 shadow2D(sampler2DShadow, vec3, float);"));
s.append(TString("vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord, float bias);")); s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4, float);"));
s.append(TString("vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord, float bias);")); s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4, float);"));
}
s.append(TString("float dFdx(float p);")); s.append(TString("float dFdx(float p);"));
s.append(TString("vec2 dFdx(vec2 p);")); s.append(TString("vec2 dFdx(vec2 p);"));
...@@ -815,7 +782,6 @@ void TBuiltIns::initialize(int version, EProfile profile) ...@@ -815,7 +782,6 @@ void TBuiltIns::initialize(int version, EProfile profile)
builtInStrings[EShLangVertex].push_back(StandardUniforms); builtInStrings[EShLangVertex].push_back(StandardUniforms);
} }
void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, EShLanguage language) void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, EShLanguage language)
{ {
// //
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment