From 1cd2d838bf1682e125d52d12ac6f2960df65c7e0 Mon Sep 17 00:00:00 2001 From: Frederico Linhares Date: Wed, 21 Dec 2022 14:46:09 -0300 Subject: refa Merge Rectangle into Vector4D --- glsl/shader_2d_wired.vert.glsl | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'glsl/shader_2d_wired.vert.glsl') diff --git a/glsl/shader_2d_wired.vert.glsl b/glsl/shader_2d_wired.vert.glsl index 97330dc..28cc55f 100644 --- a/glsl/shader_2d_wired.vert.glsl +++ b/glsl/shader_2d_wired.vert.glsl @@ -15,16 +15,42 @@ */ #version 450 +#extension GL_ARB_separate_shader_objects : enable -layout(location = 0) in vec2 in_position; +layout(location = 0) out int out_instance_index; layout(set = 0, binding = 0) uniform UBOView2D { mat4 proj; } ubo_view; +layout(set = 1, binding = 0) uniform UBORectangles +{ + vec4 positions[128]; +} ubo_sprite_positions; + void main() { - gl_Position = ubo_view.proj * vec4(in_position, 0.0, 1.0); + vec2 coordinate; + vec4 position = ubo_sprite_positions.positions[gl_InstanceIndex]; + + out_instance_index = gl_InstanceIndex; + + switch(gl_VertexIndex) + { + case 0: + coordinate = vec2(position.x, position.y); + break; + case 1: + coordinate = vec2(position.x, position.w); + break; + case 2: + coordinate = vec2(position.z, position.y); + break; + case 3: + coordinate = vec2(position.z, position.w); + break; + } + gl_Position = ubo_view.proj * vec4(coordinate, 0.0, 1.0); } -- cgit v1.2.3