From 5a079a2d114f96d4847d1ee305d5b7c16eeec50e Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 27 Dec 2025 12:03:39 -0800 Subject: Initial commit --- .../src/render/vulkan/VULKAN_VertexShader.hlsl | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 contrib/SDL-3.2.8/src/render/vulkan/VULKAN_VertexShader.hlsl (limited to 'contrib/SDL-3.2.8/src/render/vulkan/VULKAN_VertexShader.hlsl') diff --git a/contrib/SDL-3.2.8/src/render/vulkan/VULKAN_VertexShader.hlsl b/contrib/SDL-3.2.8/src/render/vulkan/VULKAN_VertexShader.hlsl new file mode 100644 index 0000000..373a179 --- /dev/null +++ b/contrib/SDL-3.2.8/src/render/vulkan/VULKAN_VertexShader.hlsl @@ -0,0 +1,45 @@ +#pragma pack_matrix( row_major ) + +struct VertexShaderConstants +{ + matrix model; + matrix projectionAndView; +}; +[[vk::push_constant]] +ConstantBuffer pushConstants; + +struct VertexShaderInput +{ + float3 pos : POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; +}; + +struct VertexShaderOutput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR0; + [[vk::builtin("PointSize")]] float pointSize : SV_PointSize; +}; + +VertexShaderOutput mainColor(VertexShaderInput input) +{ + VertexShaderOutput output; + float4 pos = float4(input.pos, 1.0f); + + // Transform the vertex position into projected space. + pos = mul(pos, pushConstants.model); + pos = mul(pos, pushConstants.projectionAndView); + output.pos = pos; + + // Pass through texture coordinates and color values without transformation + output.tex = input.tex; + output.color = input.color; + + // Always output pointSize so that this VS can be used with points + output.pointSize = 1.0; + + return output; +} + -- cgit v1.2.3