diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 0dd9be95bbe5b6b5bb133ff17b5b2dc45da48116..3075d5e8b1ac1d3259fa4e7500aef76c6c59bc89 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -386,73 +386,77 @@ void TBuiltIns::initialize(int version, EProfile profile) s.append(TString("bvec3 not(bvec3 x);")); s.append(TString("bvec4 not(bvec4 x);")); + s.append(TString("\n")); + // // Texture Functions. // if (profile != EEsProfile || version == 100) { - s.append(TString("vec4 texture2D(sampler2D sampler, vec2 coord);")); - s.append(TString("vec4 texture2D(sampler2D sampler, vec2 coord, float bias);")); + s.append(TString("vec4 texture2D(sampler2D, vec2);")); + s.append(TString("vec4 texture2D(sampler2D, vec2, float);")); - s.append(TString("vec4 texture2DProj(sampler2D sampler, vec3 coord);")); - s.append(TString("vec4 texture2DProj(sampler2D sampler, vec4 coord);")); - 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 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 sampler, vec2 coord, float lod);")); + s.append(TString("vec4 texture2DLod(sampler2D, vec2, float);")); - 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 texture2DProjLod(sampler2D, vec3, float);")); + s.append(TString("vec4 texture2DProjLod(sampler2D, vec4, float);")); - s.append(TString("vec4 textureCube(samplerCube sampler, vec3 coord);")); - s.append(TString("vec4 textureCube(samplerCube sampler, vec3 coord, float bias);")); + s.append(TString("vec4 textureCube(samplerCube, vec3);")); + s.append(TString("vec4 textureCube(samplerCube, vec3, float);")); - s.append(TString("vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod);")); + s.append(TString("vec4 textureCubeLod(samplerCube, vec3, float);")); } - if (profile != EEsProfile || version > 100) { - s.append(TString("vec4 texture1D(sampler1D sampler, float coord);")); - s.append(TString("vec4 texture1D(sampler1D sampler, float coord, float bias);")); + 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 sampler, vec2 coord);")); - s.append(TString("vec4 texture1DProj(sampler1D sampler, vec4 coord);")); - 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 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 sampler, vec2 coord, float lod);")); - s.append(TString("vec4 texture1DProjLod(sampler1D sampler, vec4 coord, float lod);")); + s.append(TString("vec4 texture1DProjLod(sampler1D, vec2, float);")); + s.append(TString("vec4 texture1DProjLod(sampler1D, vec4, float);")); - s.append(TString("vec4 texture3D(sampler3D sampler, vec3 coord);")); - s.append(TString("vec4 texture3D(sampler3D sampler, vec3 coord, float bias);")); + s.append(TString("vec4 texture3D(sampler3D, vec3);")); + s.append(TString("vec4 texture3D(sampler3D, vec3, float);")); - s.append(TString("vec4 texture3DProj(sampler3D sampler, vec4 coord);")); - s.append(TString("vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias);")); + s.append(TString("vec4 texture3DProj(sampler3D, vec4);")); + s.append(TString("vec4 texture3DProj(sampler3D, vec4, float);")); - s.append(TString("vec4 texture3DLod(sampler3D sampler, vec3 coord, float lod);")); + s.append(TString("vec4 texture3DLod(sampler3D, vec3, float);")); - s.append(TString("vec4 texture3DProjLod(sampler3D sampler, vec4 coord, float lod);")); + s.append(TString("vec4 texture3DProjLod(sampler3D, vec4, float);")); - s.append(TString("vec4 shadow1D(sampler1DShadow sampler, vec3 coord);")); - s.append(TString("vec4 shadow1D(sampler1DShadow sampler, vec3 coord, float bias);")); + s.append(TString("vec4 shadow1D(sampler1DShadow, vec3);")); + s.append(TString("vec4 shadow1D(sampler1DShadow, vec3, float);")); - s.append(TString("vec4 shadow2D(sampler2DShadow sampler, vec3 coord);")); - s.append(TString("vec4 shadow2D(sampler2DShadow sampler, vec3 coord, float bias);")); + s.append(TString("vec4 shadow2D(sampler2DShadow, vec3);")); + s.append(TString("vec4 shadow2D(sampler2DShadow, vec3, float);")); - s.append(TString("vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord);")); - s.append(TString("vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord, float bias);")); + s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4);")); + s.append(TString("vec4 shadow1DProj(sampler1DShadow, vec4, float);")); - s.append(TString("vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord);")); - s.append(TString("vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord, float bias);")); + s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4);")); + s.append(TString("vec4 shadow2DProj(sampler2DShadow, vec4, float);")); - s.append(TString("vec4 shadow1DProjLod(sampler1DShadow sampler, vec4 coord, float lod);")); - s.append(TString("vec4 shadow2DProjLod(sampler2DShadow sampler, vec4 coord, float lod);")); + 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 sampler, vec2 coord);")); - s.append(TString("vec4 texture2DRectProj(sampler2DRect sampler, vec3 coord);")); - s.append(TString("vec4 texture2DRectProj(sampler2DRect sampler, vec4 coord);")); - s.append(TString("vec4 shadow2DRect(sampler2DRectShadow sampler, vec3 coord);")); - s.append(TString("vec4 shadow2DRectProj(sampler2DRectShadow sampler, vec4 coord);")); + s.append(TString("vec4 texture2DRect(sampler2DRect, vec2);")); + s.append(TString("vec4 texture2DRectProj(sampler2DRect, vec3);")); + s.append(TString("vec4 texture2DRectProj(sampler2DRect, vec4);")); + s.append(TString("vec4 shadow2DRect(sampler2DRectShadow, vec3);")); + s.append(TString("vec4 shadow2DRectProj(sampler2DRectShadow, vec4);")); } + + s.append(TString("\n")); // // Noise functions. diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h index de956a59ce694d42564d7ec1c7a131c1ed5f22a0..836c83af2b06d1062ec0aa93d8bf61fd69f97c26 100644 --- a/glslang/MachineIndependent/SymbolTable.h +++ b/glslang/MachineIndependent/SymbolTable.h @@ -144,8 +144,12 @@ protected: struct TParameter { TString *name; TType* type; - void copyParam(const TParameter& param, const TStructureMap& remapper) { - name = NewPoolTString(param.name->c_str()); + void copyParam(const TParameter& param, const TStructureMap& remapper) + { + if (param.name) + name = NewPoolTString(param.name->c_str()); + else + name = 0; type = param.type->clone(remapper); } };