Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl')
-rw-r--r--source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl26
1 files changed, 21 insertions, 5 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
index 81e0965fad3..b5036b51d9d 100644
--- a/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_2D_widget_base_vert.glsl
@@ -61,11 +61,27 @@ vec2 do_widget(void)
const vec2 ofs = vec2(0.5, -0.5);
lineWidth = abs(rect.x - recti.x);
vec2 emboss_ofs = vec2(0.0, -lineWidth);
- vec2 v_pos[4] = vec2[4](rect.xz + emboss_ofs + ofs.yy,
- rect.xw + ofs.yx,
- rect.yz + emboss_ofs + ofs.xy,
- rect.yw + ofs.xx);
- vec2 pos = v_pos[gl_VertexID];
+
+ vec2 pos;
+ switch (gl_VertexID) {
+ default:
+ case 0: {
+ pos = rect.xz + emboss_ofs + ofs.yy;
+ break;
+ }
+ case 1: {
+ pos = rect.xw + ofs.yx;
+ break;
+ }
+ case 2: {
+ pos = rect.yz + emboss_ofs + ofs.xy;
+ break;
+ }
+ case 3: {
+ pos = rect.yw + ofs.xx;
+ break;
+ }
+ }
uvInterp = pos - rect.xz;
outRectSize = rect.yw - rect.xz;