#include "kernel.h" ConstantBuffer sig : register(b0); /* ========================== * * Vertex shader * ========================== */ Struct(VsInput) { Semantic(u32, SV_VertexID); }; Struct(VSOutput) { Semantic(Vec4, SV_Position); Semantic(Vec4, color_srgb); }; K_ENTRY VSOutput vs(VsInput input) { StructuredBuffer verts = GpuResourceFromUrid(sig.verts_urid); K_ShapeVert vert = verts[input.SV_VertexID]; VSOutput output; output.SV_Position = mul(sig.projection, Vec4(vert.pos.xy, 0, 1)); output.color_srgb = Vec4NormFromU32(vert.color_srgb); return output; } /* ========================== * * Pixel shader * ========================== */ Struct(PsInput) { VSOutput vs; }; Struct(PSOutput) { Semantic(Vec4, SV_Target); }; K_ENTRY PSOutput ps(PsInput input) { PSOutput output; output.SV_Target = input.vs.color_srgb; return output; }