32 lines
878 B
HLSL
32 lines
878 B
HLSL
cbuffer Uniforms : register(b0)
|
|
{
|
|
float4 State;
|
|
matrix Transform;
|
|
float4 Scalar4[2];
|
|
float4 Vector[8];
|
|
uint ClipSize;
|
|
matrix Clip[8];
|
|
};
|
|
|
|
float ScreenWidth() { return State[1]; }
|
|
float ScreenHeight() { return State[2]; }
|
|
float Scalar(int i) { if (i < 4) return Scalar4[0][i]; else return Scalar4[1][i - 4]; }
|
|
float4 sRGBToLinear(float4 val) { return float4(val.xyz * (val.xyz * (val.xyz * 0.305306011 + 0.682171111) + 0.012522878), val.w); }
|
|
|
|
struct VS_OUTPUT
|
|
{
|
|
float4 Position : SV_POSITION;
|
|
float4 Color : COLOR0;
|
|
float2 ObjectCoord : TEXCOORD0;
|
|
};
|
|
|
|
VS_OUTPUT VS(float2 Position : POSITION,
|
|
uint4 Color : COLOR0,
|
|
float2 ObjCoord : TEXCOORD0)
|
|
{
|
|
VS_OUTPUT output;
|
|
output.Position = mul(Transform, float4(Position, 0.0, 1.0));
|
|
output.Color = float4(Color) / 255.0;
|
|
output.ObjectCoord = ObjCoord;
|
|
return output;
|
|
} |