From 2846c73db02c043ed16b4c5bba33e4f1ed29d755 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Mon, 10 Feb 2025 19:09:19 +0100 Subject: [PATCH] Add slang shaders for triangle samples --- shaders/slang/triangle/triangle.frag.slang | 11 +++++++ shaders/slang/triangle/triangle.vert.slang | 35 ++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 shaders/slang/triangle/triangle.frag.slang create mode 100644 shaders/slang/triangle/triangle.vert.slang 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; +}