summaryrefslogtreecommitdiff
path: root/glsl/shader_2d_wired.vert.glsl
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2023-01-06 17:30:12 -0300
committerFrederico Linhares <fred@linhares.blue>2023-01-06 17:30:12 -0300
commit62367a0bcca75c45eb3e7d1582c4fff18827ddc7 (patch)
tree0ac14c45bd0236104034d47401edc407ec94c94a /glsl/shader_2d_wired.vert.glsl
parentb0b61c117c6e2bc7693802f005a2888e7cc073c2 (diff)
refa Use Push constants for sprites and rectangles
Diffstat (limited to 'glsl/shader_2d_wired.vert.glsl')
-rw-r--r--glsl/shader_2d_wired.vert.glsl19
1 files changed, 7 insertions, 12 deletions
diff --git a/glsl/shader_2d_wired.vert.glsl b/glsl/shader_2d_wired.vert.glsl
index 28cc55f..0e9258e 100644
--- a/glsl/shader_2d_wired.vert.glsl
+++ b/glsl/shader_2d_wired.vert.glsl
@@ -17,39 +17,34 @@
#version 450
#extension GL_ARB_separate_shader_objects : enable
-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
+layout(push_constant) uniform PCRectangle
{
- vec4 positions[128];
-} ubo_sprite_positions;
+ vec4 position;
+} sprite;
void
main()
{
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);
+ coordinate = vec2(sprite.position.x, sprite.position.y);
break;
case 1:
- coordinate = vec2(position.x, position.w);
+ coordinate = vec2(sprite.position.x, sprite.position.w);
break;
case 2:
- coordinate = vec2(position.z, position.y);
+ coordinate = vec2(sprite.position.z, sprite.position.y);
break;
case 3:
- coordinate = vec2(position.z, position.w);
+ coordinate = vec2(sprite.position.z, sprite.position.w);
break;
}
gl_Position = ubo_view.proj * vec4(coordinate, 0.0, 1.0);