power_play/src/kernel/kernel_shape.rst
2025-07-31 20:26:47 -05:00

50 lines
929 B
ReStructuredText

#include "kernel.h"
ConstantBuffer<K_ShapeSig> 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<K_ShapeVert> 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;
}