diff options
author | David Robillard <d@drobilla.net> | 2019-12-07 21:42:52 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-12-11 23:18:51 +0100 |
commit | ad39159e3ada8086ad8385226c0361f4ff51f90d (patch) | |
tree | 1c483cac5f63e8dd2e90477992f77418654434c4 /shaders/rect.vert | |
parent | 47b8e416954e499247cc4bb002496c4d8aa1a808 (diff) | |
download | pugl-ad39159e3ada8086ad8385226c0361f4ff51f90d.tar.gz pugl-ad39159e3ada8086ad8385226c0361f4ff51f90d.tar.bz2 pugl-ad39159e3ada8086ad8385226c0361f4ff51f90d.zip |
GL3 Test: Use instancing
Diffstat (limited to 'shaders/rect.vert')
-rw-r--r-- | shaders/rect.vert | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/shaders/rect.vert b/shaders/rect.vert index de74fa7..bf2e951 100644 --- a/shaders/rect.vert +++ b/shaders/rect.vert @@ -3,16 +3,32 @@ /* The vertex shader is trivial, but forwards scaled UV coordinates (in pixels) to the fragment shader for drawing the border. */ -uniform mat4 MVP; -uniform vec2 u_size; +uniform mat4 u_projection; -in vec2 v_position; +layout(location = 0) in vec2 v_position; +layout(location = 1) in vec2 v_origin; +layout(location = 2) in vec2 v_size; +layout(location = 3) in vec4 v_fillColor; noperspective out vec2 f_uv; +noperspective out vec2 f_size; +noperspective out vec4 f_fillColor; void main() { - f_uv = v_position * u_size; + // clang-format off + mat4 m = mat4(v_size[0], 0.0, 0.0, 0.0, + 0.0, v_size[1], 0.0, 0.0, + 0.0, 0.0, 1.0, 0.0, + v_origin[0], v_origin[1], 0.0, 1.0); + // clang-format on + + mat4 MVP = u_projection * m; + + f_uv = v_position * v_size; + f_size = v_size; + f_fillColor = v_fillColor; + gl_Position = MVP * vec4(v_position, 0.0, 1.0); } |