diff --git a/shaders/slang/base/uioverlay.frag.slang b/shaders/slang/base/uioverlay.frag.slang deleted file mode 100644 index 4559309a..00000000 --- a/shaders/slang/base/uioverlay.frag.slang +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (c) 2025, Sascha Willems - * - * SPDX-License-Identifier: MIT - * - */ - -[[vk::binding(0, 0)]] -Sampler2D fontTexture; - -struct VSOutput -{ - [[vk::location(0)]]float2 UV : TEXCOORD0; - [[vk::location(1)]]float4 Color : COLOR0; -}; - -[shader("fragment")] -float4 main(VSOutput input) : SV_TARGET -{ - return input.Color * fontTexture.Sample(input.UV); -} \ No newline at end of file diff --git a/shaders/slang/base/uioverlay.vert.slang b/shaders/slang/base/uioverlay.slang similarity index 58% rename from shaders/slang/base/uioverlay.vert.slang rename to shaders/slang/base/uioverlay.slang index 8fe08df1..d59b67b6 100644 --- a/shaders/slang/base/uioverlay.vert.slang +++ b/shaders/slang/base/uioverlay.slang @@ -4,18 +4,20 @@ * */ +Sampler2D fontTexture; + struct VSInput { - [[vk::location(0)]]float2 Pos : POSITION0; - [[vk::location(1)]]float2 UV : TEXCOORD0; - [[vk::location(2)]]float4 Color : COLOR0; + float2 Pos : POSITION0; + float2 UV; + float4 Color; }; struct VSOutput { float4 Pos : SV_POSITION; - [[vk::location(0)]]float2 UV : TEXCOORD0; - [[vk::location(1)]]float4 Color : COLOR0; + float2 UV; + float4 Color; }; struct PushConstants @@ -24,15 +26,18 @@ struct PushConstants float2 translate; }; -[[vk::push_constant]] -PushConstants pushConstants; - [shader("vertex")] -VSOutput main(VSInput input) +VSOutput vertexMain(VSInput input, uniform PushConstants pushConstants) { VSOutput output; output.Pos = float4(input.Pos * pushConstants.scale + pushConstants.translate, 0.0, 1.0); output.UV = input.UV; output.Color = input.Color; return output; +} + +[shader("fragment")] +float4 fragmentMain(VSOutput input) +{ + return input.Color * fontTexture.Sample(input.UV); } \ No newline at end of file diff --git a/shaders/slang/bufferdeviceaddress/cube.frag.slang b/shaders/slang/bufferdeviceaddress/cube.frag.slang deleted file mode 100644 index 05b8e1d0..00000000 --- a/shaders/slang/bufferdeviceaddress/cube.frag.slang +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (c) 2025, Sascha Willems - * - * SPDX-License-Identifier: MIT - * - */ - - [[vk::binding(0, 0)]] -Sampler2D samplerColorMap; - -struct VSInput -{ - [[vk::location(1)]] float3 Color; - [[vk::location(2)]] float2 UV; -}; - -[shader("fragment")] -float4 main(VSInput input) -{ - return samplerColorMap.Sample(input.UV) * float4(input.Color, 1.0); -} \ No newline at end of file diff --git a/shaders/slang/bufferdeviceaddress/cube.vert.slang b/shaders/slang/bufferdeviceaddress/cube.slang similarity index 70% rename from shaders/slang/bufferdeviceaddress/cube.vert.slang rename to shaders/slang/bufferdeviceaddress/cube.slang index 2d419f5a..4e86556a 100644 --- a/shaders/slang/bufferdeviceaddress/cube.vert.slang +++ b/shaders/slang/bufferdeviceaddress/cube.slang @@ -4,12 +4,14 @@ * */ +Sampler2D samplerColorMap; + struct VSInput { - [[vk::location(0)]] float3 Pos; - [[vk::location(1)]] float3 Normal; - [[vk::location(2)]] float2 UV; - [[vk::location(3)]] float3 Color; + float3 Pos; + float3 Normal; + float2 UV; + float3 Color; }; struct MatrixReference { @@ -22,18 +24,17 @@ struct PushConsts { // Pointer to the buffer for the data for each model ConstBufferPointer modelDataReference; }; -[[vk::push_constant]] PushConsts pushConstants; struct VSOutput { float4 Pos : SV_POSITION; - [[vk::location(0)]] float3 Normal; - [[vk::location(1)]] float3 Color; - [[vk::location(2)]] float2 UV; + float3 Normal; + float3 Color; + float2 UV; }; [shader("vertex")] -VSOutput main(VSInput input) +VSOutput vertexMain(VSInput input, uniform PushConsts pushConstants) { MatrixReference sceneData = pushConstants.sceneDataReference.get(); MatrixReference modelData = pushConstants.modelDataReference.get(); @@ -44,4 +45,10 @@ VSOutput main(VSInput input) output.UV = input.UV; output.Pos = mul(sceneData.matrix, mul(modelData.matrix, float4(input.Pos.xyz, 1.0))); return output; +} + +[shader("fragment")] +float4 fragmentMain(VSOutput input) +{ + return samplerColorMap.Sample(input.UV) * float4(input.Color, 1.0); } \ No newline at end of file diff --git a/shaders/slang/pushconstants/pushconstants.frag.slang b/shaders/slang/pushconstants/pushconstants.frag.slang deleted file mode 100644 index a2646791..00000000 --- a/shaders/slang/pushconstants/pushconstants.frag.slang +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (c) 2025, Sascha Willems - * - * SPDX-License-Identifier: MIT - * - */ - -struct VSOutput -{ - float3 Color; -}; - -[shader("fragment")] -float4 main(VSOutput input) : SV_TARGET -{ - return float4(input.Color, 1.0); -} \ No newline at end of file diff --git a/shaders/slang/pushconstants/pushconstants.vert.slang b/shaders/slang/pushconstants/pushconstants.slang similarity index 78% rename from shaders/slang/pushconstants/pushconstants.vert.slang rename to shaders/slang/pushconstants/pushconstants.slang index 538ea288..9f3e4288 100644 --- a/shaders/slang/pushconstants/pushconstants.vert.slang +++ b/shaders/slang/pushconstants/pushconstants.slang @@ -27,7 +27,7 @@ struct VSOutput // Uniform entry-point parameters are automatically bound to push constants by slang [shader("vertex")] -VSOutput main(VSInput input, uniform float4 pushColor, uniform float4 pushPosition) +VSOutput vertexMain(VSInput input, uniform float4 pushColor, uniform float4 pushPosition) { VSOutput output; output.Color = input.Color * pushColor.rgb; @@ -35,4 +35,10 @@ VSOutput main(VSInput input, uniform float4 pushColor, uniform float4 pushPositi float3 worldPos = locPos + pushPosition.xyz; output.Pos = mul(ubo.projection, mul(ubo.view, float4(worldPos.xyz, 1.0))); return output; +} + +[shader("fragment")] +float4 fragmentMain(VSOutput input) : SV_TARGET +{ + return float4(input.Color, 1.0); } \ No newline at end of file diff --git a/shaders/slang/triangle/triangle.frag.slang b/shaders/slang/triangle/triangle.frag.slang deleted file mode 100644 index 7ae7fa20..00000000 --- a/shaders/slang/triangle/triangle.frag.slang +++ /dev/null @@ -1,11 +0,0 @@ -/* 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.slang similarity index 81% rename from shaders/slang/triangle/triangle.vert.slang rename to shaders/slang/triangle/triangle.slang index d8305fa5..b403786f 100644 --- a/shaders/slang/triangle/triangle.vert.slang +++ b/shaders/slang/triangle/triangle.slang @@ -26,10 +26,16 @@ struct VSOutput }; [shader("vertex")] -VSOutput main(VSInput input) +VSOutput vertexMain(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; } + +[shader("fragment")] +float4 fragmentMain(VSOutput input) +{ + return float4(input.Color, 1.0); +}