#extension GL_EXT_shader_texture_lod : enable #extension GL_EXT_shadow_samplers : enable lowp vec4 impl_low_texture2DProjLodEXT(lowp sampler2D sampler, highp vec4 coord, mediump float lod) { #if defined(GL_EXT_shader_texture_lod) return texture2DProjLodEXT(sampler, coord, lod); #else return texture2DProj(sampler, coord, lod); #endif } lowp vec4 impl_low_texture2DProjLodEXT(lowp sampler2D sampler, highp vec3 coord, mediump float lod) { #if defined(GL_EXT_shader_texture_lod) return texture2DProjLodEXT(sampler, coord, lod); #else return texture2DProj(sampler, coord, lod); #endif } uniform sampler2D tex; uniform lowp sampler2DShadow shadowmap; varying highp vec4 uv; void main () { lowp vec4 c_1; c_1 = (texture2DProj (tex, uv) + texture2DProj (tex, uv.xyz)); c_1 = (c_1 + impl_low_texture2DProjLodEXT (tex, uv, 1.0)); c_1 = (c_1 + impl_low_texture2DProjLodEXT (tex, uv.xyz, 1.0)); c_1 = (c_1 + vec4(shadow2DEXT (shadowmap, uv.xyz))); c_1 = (c_1 + vec4(shadow2DProjEXT (shadowmap, uv))); gl_FragColor = c_1; } // stats: 5 alu 6 tex 0 flow // inputs: 1 // #0: uv (high float) 4x1 [-1] // textures: 2 // #0: tex (low 2d) 0x0 [-1] // #1: shadowmap (low 2dshadow) 0x0 [-1]