Professional Documents
Culture Documents
#define ATTRIBUTE_LOCATION(x)
#define FRAGMENT_OUTPUT_LOCATION(x)
#define FRAGMENT_OUTPUT_LOCATION_INDEXED(x, y)
#define UBO_BINDING(packing, x) layout(packing, binding = x)
#define SAMPLER_BINDING(x) layout(binding = x)
#define TEXEL_BUFFER_BINDING(x) layout(binding = x)
#define SSBO_BINDING(x) layout(binding = x)
#define IMAGE_BINDING(format, x) layout(format, binding = x)
#define VARYING_LOCATION(x)
#version 320 es
#define ATTRIBUTE_LOCATION(x)
#define FRAGMENT_OUTPUT_LOCATION(x)
#define FRAGMENT_OUTPUT_LOCATION_INDEXED(x, y)
#define UBO_BINDING(packing, x) layout(packing, binding = x)
#define SAMPLER_BINDING(x) layout(binding = x)
#define TEXEL_BUFFER_BINDING(x) layout(binding = x)
#define SSBO_BINDING(x) layout(binding = x)
#define IMAGE_BINDING(format, x) layout(format, binding = x)
#define VARYING_LOCATION(x)
// TEV stage 0
rastemp = iround(col0 * 255.0).rgba;
tevcoord = fixpoint_uv0;
textemp = iround(255.0 * texture(samp[0], float3(float2(tevcoord).xy *
texdim[0].xy, 0.0))).rgba;
tevin_a = int4(int3(0,0,0), 0) & 255;
tevin_b = int4(textemp.rgb, 0) & 255;
tevin_c = int4(rastemp.rgb, 0) & 255;
tevin_d = int4(int3(0,0,0), textemp.a);
tevin_temp = (tevin_a<<8) + (tevin_b-tevin_a) * (tevin_c + (tevin_c>>7));
// tev combine
prev = (((tevin_d.rgba ) ) + ((((tevin_temp.rgba) ) + 128) >> 8)) ;
prev = clamp(prev, int4(0, 0, 0, 0), int4(255, 255, 255, 255));
// TEV stage 1
rastemp = iround(col0 * 255.0).rgba;
tevcoord = fixpoint_uv1;
textemp = iround(255.0 * texture(samp[1], float3(float2(tevcoord).xy *
texdim[1].xy, 0.0))).rgba;
tevin_a = int4(int3(0,0,0), 0) & 255;
tevin_b = int4(textemp.rgb, textemp.a) & 255;
tevin_c = int4(rastemp.rgb, prev.a) & 255;
tevin_d = int4(int3(0,0,0), 0);
tevin_temp = (tevin_a<<8) + (tevin_b-tevin_a) * (tevin_c + (tevin_c>>7));
// tev combine
prev = (((tevin_d.rgba ) ) + ((((tevin_temp.rgba) ) + 128) >> 8)) ;
prev = clamp(prev, int4(0, 0, 0, 0), int4(255, 255, 255, 255));
prev = prev & 255;
if(( (prev.a > alphaRef.r) && (true)) == false) {
ocol0 = float4(0.0, 0.0, 0.0, 0.0);
discard;
}
int zCoord = int(rawpos.z * 16777216.0);
zCoord = clamp(zCoord, 0, 0xFFFFFF);
float ze = (cfogf.x * 16777216.0) / float(cfogi.y - (zCoord >> cfogi.w));
float fog = clamp(ze - cfogf.y, 0.0, 1.0);
fog = 1.0 - exp2(-8.0 * fog);
int ifog = iround(fog * 256.0);
prev.rgb = (prev.rgb * (256 - ifog) + cfogcolor.rgb * ifog) >> 8;
ocol0 = float4(prev) / 255.0;
}