bgfx/3rdparty/glsl-optimizer/tests/vertex/swizzle-casts-inES3.txt
2014-10-11 12:32:43 -07:00

40 lines
1.2 KiB
Text

#version 300 es
#define gl_Vertex _glesVertex
in vec4 _glesVertex;
#define gl_MultiTexCoord0 _glesMultiTexCoord0
in vec4 _glesMultiTexCoord0;
float xll_saturate_f( float x) {
return clamp( x, 0.0, 1.0);
}
struct VertexOutputShadowCaster {
highp vec4 pos;
mediump vec2 tex;
};
struct VertexInput {
highp vec4 vertex;
mediump vec4 uv0;
};
uniform highp vec4 unity_LightShadowBias;
uniform highp mat4 glstate_matrix_mvp;
VertexOutputShadowCaster vertShadowCaster( in VertexInput v ) {
VertexOutputShadowCaster o;
o.pos = (glstate_matrix_mvp * v.vertex);
o.pos.z += xll_saturate_f((unity_LightShadowBias.x / o.pos.w));
highp float clamped = max( o.pos.z, (o.pos.w * -1.0));
o.pos.z = mix( o.pos.z, clamped, unity_LightShadowBias.y);
o.tex.xy = v.uv0.xy;
return o;
}
out mediump vec2 xlv_TEXCOORD1;
void main() {
VertexOutputShadowCaster xl_retval;
VertexInput xlt_v;
xlt_v.vertex = vec4(gl_Vertex);
xlt_v.uv0 = vec4(gl_MultiTexCoord0);
xl_retval = vertShadowCaster( xlt_v);
gl_Position = vec4(xl_retval.pos);
// Was producing missing precision cast on Metal, _bl_o.xlv_TEXCOORD1 = _bl_i._glesMultiTexCoord0.xy
xlv_TEXCOORD1 = vec2(xl_retval.tex);
}