47 lines
823 B
HLSL
47 lines
823 B
HLSL
|
|
#include "text_shared.hlsli"
|
|
|
|
StructuredBuffer<FontInfo> fontBuffer: register(t0, space0);
|
|
|
|
cbuffer Uniforms : register(b0, space1)
|
|
{
|
|
float2 Extents;
|
|
};
|
|
|
|
struct VSOut
|
|
{
|
|
uint Color : TEXCOORD0;
|
|
float2 UV : TEXCOORD1;
|
|
float2 pixelPosition: TEXCOORD2;
|
|
uint Instance: TEXCOORD3;
|
|
|
|
float4 Position : SV_Position;
|
|
};
|
|
|
|
struct Input
|
|
{
|
|
float2 Position : TEXCOORD0;
|
|
float2 UV : TEXCOORD1;
|
|
uint Color: TEXCOORD2;
|
|
uint Instance : SV_InstanceID;
|
|
};
|
|
|
|
VSOut main(Input v)
|
|
{
|
|
FontInfo s = fontBuffer[v.Instance];
|
|
VSOut o;
|
|
|
|
float2 t = v.Position + s.position;
|
|
o.pixelPosition = t;
|
|
|
|
float4 fp = float4((t / Extents) * 2 + float2(-1.0f, -1.0f), 0.0, 1.0);
|
|
fp.y = -fp.y;
|
|
o.Position = fp;
|
|
|
|
o.UV = v.UV;
|
|
o.Color = v.Color;
|
|
o.Instance = v.Instance;
|
|
|
|
return o;
|
|
}
|