Files
OpenRA/cg/chrome-rgba.fx

63 lines
1.3 KiB
HLSL

// OpenRA ui shader for non-SHP sprites (mostly just chrome)
// Author: C. Forbes
//--------------------------------------------------------
float2 r1, r2; // matrix elements
sampler2D DiffuseTexture = sampler_state {
MinFilter = Nearest;
MagFilter = Nearest;
};
struct VertexIn {
float4 Position: POSITION;
float4 Tex0: TEXCOORD0;
};
struct VertexOut {
float4 Position: POSITION;
float2 Tex0: TEXCOORD0;
};
struct FragmentIn {
float2 Tex0: TEXCOORD0;
};
VertexOut Simple_vp(VertexIn v) {
VertexOut o;
float2 p = v.Position.xy * r1 + r2;
o.Position = float4(p.x,p.y,0,1);
o.Tex0 = v.Tex0.xy;
return o;
}
float4 Simple_fp(FragmentIn f) : COLOR0 {
float4 r = tex2D(DiffuseTexture, f.Tex0);
return r;
}
technique high_quality {
pass p0 {
BlendEnable = true;
DepthTestEnable = false;
CullFaceEnable = false;
VertexProgram = compile latest Simple_vp();
FragmentProgram = compile latest Simple_fp();
BlendEquation = FuncAdd;
BlendFunc = int2( SrcAlpha, OneMinusSrcAlpha );
}
}
technique high_quality_cg21 {
pass p0 {
BlendEnable = true;
DepthTestEnable = false;
CullFaceEnable = false;
VertexProgram = compile arbvp1 Simple_vp();
FragmentProgram = compile arbfp1 Simple_fp();
BlendEquation = FuncAdd;
BlendFunc = int2( SrcAlpha, OneMinusSrcAlpha );
}
}