50 lines
929 B
ReStructuredText
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;
|
|
}
|