/* * Tuxánci 2 - A first person shooter * Copyright (C) 2025-2026 Connor Thomson * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ struct TextUniforms { float4 clip_rect; }; [[vk::binding(0, 1)]] ConstantBuffer uniforms : register(b0, space1); struct VSOutput { float4 position : SV_Position; float2 uv : TEXCOORD0; }; VSOutput main(uint vertexID : SV_VertexID) { static const float2 positions[6] = { float2(0.0, 0.0), float2(1.0, 0.0), float2(0.0, 1.0), float2(0.0, 1.0), float2(1.0, 0.0), float2(1.0, 1.0) }; float2 position = positions[vertexID]; float2 clip = lerp(uniforms.clip_rect.xy, uniforms.clip_rect.zw, position); VSOutput output; output.position = float4(clip, 0.0, 1.0); output.uv = position; return output; }