power_play/res/sh/shape.hlsl
2025-07-18 12:04:06 -05:00

53 lines
1.1 KiB
HLSL

#include "sh/common.hlsl"
/* ========================== *
* Root signature
* ========================== */
#define ROOTSIG \
"RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), " \
"RootConstants(num32BitConstants=16, b0)"
ConstantBuffer<struct sh_material_constants> g_constants : register(b0);
/* ========================== *
* Vertex shader
* ========================== */
struct vs_input {
DECLS(float2, pos);
DECLS(float4, color_srgb);
};
struct vs_output {
DECLS(float4, SV_Position);
DECLS(float4, color_srgb);
};
SH_ENTRY(ROOTSIG) struct vs_output vs(struct vs_input input)
{
struct vs_output output;
output.SV_Position = mul(g_constants.projection, float4(input.pos.xy, 0, 1));
output.color_srgb = input.color_srgb;
return output;
}
/* ========================== *
* Pixel shader
* ========================== */
struct ps_input {
struct vs_output vs;
};
struct ps_output {
DECLS(float4, SV_Target);
};
SH_ENTRY(ROOTSIG) struct ps_output ps(struct ps_input input)
{
struct ps_output output;
output.SV_Target = input.vs.color_srgb;
return output;
}