Backlog/engine/ui/shaders/text.vert.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;
}