diff --git a/shaders/slang/triangle/triangle.frag.slang b/shaders/slang/triangle/triangle.frag.slang new file mode 100644 index 00000000..7ae7fa20 --- /dev/null +++ b/shaders/slang/triangle/triangle.frag.slang @@ -0,0 +1,11 @@ +/* Copyright (c) 2025, Sascha Willems + * + * SPDX-License-Identifier: MIT + * + */ + +[shader("fragment")] +float4 main([[vk::location(0)]] float3 Color) +{ + return float4(Color, 1.0); +} \ No newline at end of file diff --git a/shaders/slang/triangle/triangle.vert.slang b/shaders/slang/triangle/triangle.vert.slang new file mode 100644 index 00000000..d8305fa5 --- /dev/null +++ b/shaders/slang/triangle/triangle.vert.slang @@ -0,0 +1,35 @@ +/* Copyright (c) 2025, Sascha Willems + * + * SPDX-License-Identifier: MIT + * + */ + +struct UBO +{ + float4x4 projectionMatrix; + float4x4 modelMatrix; + float4x4 viewMatrix; +}; +[[vk::binding(0, 0)]] +ConstantBuffer ubo; + +struct VSInput +{ + [[vk::location(0)]] float3 Pos; + [[vk::location(1)]] float3 Color; +}; + +struct VSOutput +{ + float4 Pos : SV_POSITION; + [[vk::location(0)]] float3 Color; +}; + +[shader("vertex")] +VSOutput main(VSInput input) +{ + VSOutput output; + output.Color = input.Color; + output.Pos = mul(ubo.projectionMatrix, mul(ubo.viewMatrix, mul(ubo.modelMatrix, float4(input.Pos.xyz, 1.0)))); + return output; +}