diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-08-31 19:39:17 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-01 01:30:36 +0300 |
commit | 052538edc1fba109d3427471047611888ed13bea (patch) | |
tree | 8d3bfbd0b1045d7e62647b8cff9f4e4aa28ef56d /source/blender/gpu/shaders | |
parent | 3e7feaff44b70972751c9a62b83bde50a9c09592 (diff) |
Cleanup: Use GPUBatch for icon and area drawing
This is in order to remove GPU_draw_primitive to streamline the drawing
abstraction.
Diffstat (limited to 'source/blender/gpu/shaders')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl | 31 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl | 8 |
2 files changed, 12 insertions, 27 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl index d25cd586e65..640ceb97e5b 100644 --- a/source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl +++ b/source/blender/gpu/shaders/gpu_shader_2D_image_multi_rect_vert.glsl @@ -13,34 +13,19 @@ flat out vec4 finalColor; void main() { - /* Rendering 2 triangle per icon. */ - int i = gl_VertexID / 6; - int v = gl_VertexID % 6; + vec4 pos = calls_data[gl_InstanceID * 3]; + vec4 tex = calls_data[gl_InstanceID * 3 + 1]; + finalColor = calls_data[gl_InstanceID * 3 + 2]; - vec4 pos = calls_data[i * 3]; - vec4 tex = calls_data[i * 3 + 1]; - finalColor = calls_data[i * 3 + 2]; - - /* TODO Remove this */ - if (v == 2) { - v = 4; - } - else if (v == 3) { - v = 0; - } - else if (v == 5) { - v = 2; + if (gl_VertexID == 0) { + pos.xy = pos.xz; + tex.xy = tex.xz; } - - if (v == 0) { + else if (gl_VertexID == 1) { pos.xy = pos.xw; tex.xy = tex.xw; } - else if (v == 1) { - pos.xy = pos.xz; - tex.xy = tex.xz; - } - else if (v == 2) { + else if (gl_VertexID == 2) { pos.xy = pos.yw; tex.xy = tex.yw; } diff --git a/source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl index fcd877a37eb..ab9c30505c2 100644 --- a/source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl +++ b/source/blender/gpu/shaders/gpu_shader_2D_image_rect_vert.glsl @@ -14,13 +14,13 @@ void main() vec2 uv; vec2 co; if (gl_VertexID == 0) { - co = rect_geom.xw; - uv = rect_icon.xw; - } - else if (gl_VertexID == 1) { co = rect_geom.xy; uv = rect_icon.xy; } + else if (gl_VertexID == 1) { + co = rect_geom.xw; + uv = rect_icon.xw; + } else if (gl_VertexID == 2) { co = rect_geom.zw; uv = rect_icon.zw; |