// // TODO: // - what to do with ftransform? can it stay in the current form? // - implement texture1DLod, texture2DLod, texture3DLod, textureCubeLod, // - implement shadow1DLod, shadow2DLod, // // // From Shader Spec, ver. 1.10, rev. 59 // __fixed_output vec4 gl_Position; __fixed_output float gl_PointSize; __fixed_output vec4 gl_ClipVertex; attribute vec4 gl_Color; attribute vec4 gl_SecondaryColor; attribute vec3 gl_Normal; attribute vec4 gl_Vertex; attribute vec4 gl_MultiTexCoord0; attribute vec4 gl_MultiTexCoord1; attribute vec4 gl_MultiTexCoord2; attribute vec4 gl_MultiTexCoord3; attribute vec4 gl_MultiTexCoord4; attribute vec4 gl_MultiTexCoord5; attribute vec4 gl_MultiTexCoord6; attribute vec4 gl_MultiTexCoord7; attribute float gl_FogCoord; varying vec4 gl_FrontColor; varying vec4 gl_BackColor; varying vec4 gl_FrontSecondaryColor; varying vec4 gl_BackSecondaryColor; varying vec4 gl_TexCoord[gl_MaxTextureCoords]; varying float gl_FogFragCoord; // // Geometric Functions // vec4 ftransform () { return gl_ModelViewProjectionMatrix * gl_Vertex; } // // 8.7 Texture Lookup Functions // vec4 texture1DLod (sampler1D sampler, float coord, float lod) { // XXX: return vec4 (0.0); } vec4 texture1DProjLod (sampler1D sampler, vec2 coord, float lod) { return texture1DLod (sampler, coord.s / coord.t, lod); } vec4 texture1DProjLod (sampler1D sampler, vec4 coord, float lod) { return texture1DLod (sampler, coord.s / coord.q, lod); } vec4 texture2DLod (sampler2D sampler, vec2 coord, float lod) { // XXX: return vec4 (0.0); } vec4 texture2DProjLod (sampler2D sampler, vec3 coord, float lod) { vec2 u; u.s = coord.s / coord.p; u.t = coord.t / coord.p; return texture2DLod (sampler, u, lod); } vec4 texture2DProjLod (sampler2D sampler, vec4 coord, float lod) { vec2 u; u.s = coord.s / coord.q; u.t = coord.t / coord.q; return texture2DLod (sampler, u, lod); } vec4 texture3DLod (sampler3D sampler, vec3 coord, float lod) { // XXX: return vec4 (0.0); } vec4 texture3DProjLod (sampler3D sampler, vec4 coord, float lod) { vec3 u; u.s = coord.s / coord.q; u.t = coord.t / coord.q; u.p = coord.p / coord.q; return texture3DLod (sampler, u, lod); } vec4 textureCubeLod (samplerCube sampler, vec3 coord, float lod) { // XXX: return vec4 (0.0); } vec4 shadow1DLod (sampler1DShadow sampler, vec3 coord, float lod) { // XXX: return vec4 (0.0); } vec4 shadow2DLod (sampler2DShadow sampler, vec3 coord, float lod) { // XXX: return vec4 (0.0); } vec4 shadow1DProjLod (sampler1DShadow sampler, vec4 coord, float lod) { vec3 u; u.s = coord.s / coord.q; u.t = 0.0; u.p = coord.p / coord.q; return shadow1DLod (sampler, u, lod); } vec4 shadow2DProjLod (sampler2DShadow sampler, vec4 coord, float lod) { vec3 u; u.s = coord.s / coord.q; u.t = coord.t / coord.q; u.p = coord.p / coord.q; return shadow2DLod (sampler, u, lod); }