Bad P 0
Bad P 0
#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)
struct Light {
int4 color;
float4 cosatt;
float4 distatt;
float4 pos;
float4 dir;
};
UBO_BINDING(std140, 2) uniform VSBlock {
float4 cpnmtx[6];
float4 cproj[4];
int4 cmtrl[4];
Light clights[8];
float4 ctexmtx[24];
float4 ctrmtx[64];
float4 cnmtx[32];
float4 cpostmtx[64];
float4 cpixelcenter;
float2 cviewport;
};
FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 ocol0;
FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;
VARYING_LOCATION(0) in VertexData {
float4 pos;
float4 colors_0;
float4 colors_1;
float3 tex0;
float3 Normal;
float3 WorldPos;
float clipDist0;
float clipDist1;
};
void main()
{
float4 rawpos = gl_FragCoord;
int4 c0 = color[1], c1 = color[2], c2 = color[3], prev = color[0];
int4 rastemp, textemp, konsttemp;
int3 comp16 = int3(1, 256, 0), comp24 = int3(1, 256, 256*256);
int alphabump = 0;
int2 tevcoord = int2(0, 0);
int2 wrappedcoord, tempcoord;
int4 tevin_a, tevin_b, tevin_c, tevin_d, tevin_temp;
// 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), rastemp.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
tevcoord = fixpoint_uv0;
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(int3(0,0,0), textemp.a) & 255;
tevin_c = int4(int3(0,0,0), prev.a) & 255;
tevin_d = int4(prev.rgb, 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));
// TEV stage 2
textemp = int4(255, 255, 255, 255);
tevin_a = int4(int3(0,0,0), 0) & 255;
tevin_b = int4(int3(0,0,0), 0) & 255;
tevin_c = int4(int3(0,0,0), 0) & 255;
tevin_d = int4(prev.rgb, prev.a);
tevin_temp = (tevin_a<<8) + (tevin_b-tevin_a) * (tevin_c + (tevin_c>>7));
// color combine
prev.rgb = (((tevin_d.rgb ) << 2) + ((((tevin_temp.rgb) << 2) + 128) >>
8)) ;
// alpha combine
prev.a = (((tevin_d.a ) ) + ((((tevin_temp.a) ) + 128) >> 8)) ;
prev = clamp(prev, int4(0, 0, 0, 0), int4(255, 255, 255, 255));
prev = prev & 255;
if(( (prev.a > alphaRef.r) || (prev.a > alphaRef.g)) == false) {
ocol0 = float4(0.0, 0.0, 0.0, 0.0);
ocol1 = float4(0.0, 0.0, 0.0, 0.0);
discard;
}
ocol1 = float4(0.0, 0.0, 0.0, float(prev.a) / 255.0);
prev.a = alphaRef.a;
ocol0 = float4(prev) / 255.0;
}