struct VSInput {
float3 position: POSITION;
float2 uv: TEXCOORD0;
float4 color: COLOR0;
};
struct VSOutput {
float4 position: SV_POSITION;
float2 uv: TEXCOORD;
float4 color: COLOR;
};
VSOutput main(VSInput input) {
float4 object_space_pos = float4(input.position, 1.);
float4 final_position = mul(gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION], object_space_pos);
float4 final_color = input.color;
float2 final_uv = input.uv;
VSOutput output;
output.position = final_position;
output.uv = final_uv;
output.color = final_color;
return output;
}
struct PSInput {
float4 position: SV_POSITION;
float2 uv: TEXCOORD;
float4 color: COLOR;
};
struct PSOutput {//Output struct
float4 color: SV_TARGET;
float Depth: DEPTH;
};
PSOutput main(PSInput input) {
PSOutput output;
float4 pixColor=tex2D(gm_BaseTexture, input.uv);
//Below line is for changing nontextured object's colour from black to white so we can make coloured draws
if(pixColor.r==0.&&pixColor.g==0.&&pixColor.b==0.)
pixColor=float4(1.,1.,1.,pixColor.a);
output.color = (input.color * pixColor);
output.Depth=-1;//Here we change the depth. Recommended maximum value is 0.
return output;
}