#include "text_shared.hlsli" StructuredBuffer 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; }