[Bf-blender-cvs] [d9d2809eed0] uvimage-editor-drawing: Move selected vertices to the top

Jeroen Bakker noreply at git.blender.org
Thu Sep 10 15:15:08 CEST 2020


Commit: d9d2809eed0519c57fddac773163a3d648ea5bb2
Author: Jeroen Bakker
Date:   Thu Sep 10 15:14:56 2020 +0200
Branches: uvimage-editor-drawing
https://developer.blender.org/rBd9d2809eed0519c57fddac773163a3d648ea5bb2

Move selected vertices to the top

===================================================================

M	source/blender/draw/engines/overlay/overlay_edit_uv.c
M	source/blender/draw/engines/overlay/shaders/edit_uv_verts_vert.glsl

===================================================================

diff --git a/source/blender/draw/engines/overlay/overlay_edit_uv.c b/source/blender/draw/engines/overlay/overlay_edit_uv.c
index 4981b8483a7..1a95bd04c69 100644
--- a/source/blender/draw/engines/overlay/overlay_edit_uv.c
+++ b/source/blender/draw/engines/overlay/overlay_edit_uv.c
@@ -164,7 +164,8 @@ void OVERLAY_edit_uv_cache_init(OVERLAY_Data *vedata)
     /* uv verts */
     {
       DRW_PASS_CREATE(psl->edit_uv_verts_ps,
-                      DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_ALWAYS | DRW_STATE_BLEND_ALPHA);
+                      DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL |
+                          DRW_STATE_BLEND_ALPHA);
       GPUShader *sh = OVERLAY_shader_edit_uv_verts_get();
       pd->edit_uv_verts_grp = DRW_shgroup_create(sh, psl->edit_uv_verts_ps);
 
diff --git a/source/blender/draw/engines/overlay/shaders/edit_uv_verts_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_uv_verts_vert.glsl
index 1c5cbc7121d..89627ec528b 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_uv_verts_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_uv_verts_vert.glsl
@@ -16,17 +16,18 @@ const vec4 pinned_col = vec4(1.0, 0.0, 0.0, 1.0);
 
 void main()
 {
-  vec3 world_pos = point_object_to_world(vec3(u, 0.0));
-  gl_Position = point_world_to_ndc(world_pos);
-
-  gl_PointSize = pointSize;
-
   bool is_selected = (flag & (VERT_UV_SELECT | FACE_UV_SELECT)) != 0;
   bool is_pinned = (flag & VERT_UV_PINNED) != 0;
   vec4 deselect_col = (is_pinned) ? pinned_col : vec4(colorWire.rgb, 1.0);
   fillColor = (is_selected) ? colorVertexSelect : deselect_col;
   outlineColor = (is_pinned) ? pinned_col : vec4(fillColor.rgb, 0.0);
 
+  vec3 world_pos = point_object_to_world(vec3(u, 0.0));
+  /* Move selected vertices to the top */
+  float depth = is_selected ? 0.0 : 0.05;
+  gl_Position = vec4(point_world_to_ndc(world_pos).xy, depth, 1.0);
+  gl_PointSize = pointSize;
+
   // calculate concentric radii in pixels
   float radius = 0.5 * pointSize;



More information about the Bf-blender-cvs mailing list