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
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-06-28 17:12:24 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-06-28 17:12:24 +0300
commitaacd15e8a90da6300b8d9e72ed179a8c3622b33a (patch)
tree3a9011921efa07f4766b94b4bf36cb7ac4294319 /source
parent8caedc27d982fa269ed064efb0046dacdcbd8e1c (diff)
Overlay: Make overlay engine rebder on top of paint modes.
This puts the wireframe on top of the weight in weight paint mode, sculpt mode ... Wireframe should be colored differently if the object is in paint mode but it's not there yet.
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/intern/draw_manager.c39
1 files changed, 28 insertions, 11 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index bbbdcd31d9e..504e53fd206 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1021,6 +1021,27 @@ static void drw_engines_enable_from_object_mode(void)
use_drw_engine(&draw_engine_motion_path_type);
}
+static void drw_engines_enable_from_paint_mode(int mode)
+{
+ switch (mode) {
+ case CTX_MODE_SCULPT:
+ use_drw_engine(&draw_engine_sculpt_type);
+ break;
+ case CTX_MODE_PAINT_WEIGHT:
+ use_drw_engine(&draw_engine_pose_type);
+ use_drw_engine(&draw_engine_paint_weight_type);
+ break;
+ case CTX_MODE_PAINT_VERTEX:
+ use_drw_engine(&draw_engine_paint_vertex_type);
+ break;
+ case CTX_MODE_PAINT_TEXTURE:
+ use_drw_engine(&draw_engine_paint_texture_type);
+ break;
+ default:
+ break;
+ }
+}
+
static void drw_engines_enable_from_mode(int mode)
{
switch (mode) {
@@ -1048,21 +1069,14 @@ static void drw_engines_enable_from_mode(int mode)
case CTX_MODE_POSE:
use_drw_engine(&draw_engine_pose_type);
break;
- case CTX_MODE_SCULPT:
- use_drw_engine(&draw_engine_sculpt_type);
+ case CTX_MODE_PARTICLE:
+ use_drw_engine(&draw_engine_particle_type);
break;
+ case CTX_MODE_SCULPT:
case CTX_MODE_PAINT_WEIGHT:
- use_drw_engine(&draw_engine_pose_type);
- use_drw_engine(&draw_engine_paint_weight_type);
- break;
case CTX_MODE_PAINT_VERTEX:
- use_drw_engine(&draw_engine_paint_vertex_type);
- break;
case CTX_MODE_PAINT_TEXTURE:
- use_drw_engine(&draw_engine_paint_texture_type);
- break;
- case CTX_MODE_PARTICLE:
- use_drw_engine(&draw_engine_particle_type);
+ /* Should have already been enabled */
break;
case CTX_MODE_OBJECT:
break;
@@ -1096,6 +1110,8 @@ static void drw_engines_enable(ViewLayer *view_layer, RenderEngineType *engine_t
drw_engines_enable_from_engine(engine_type, drawtype, v3d->shading.flag);
if (DRW_state_draw_support()) {
+ /* Draw paint modes first so that they are drawn below the wireframes. */
+ drw_engines_enable_from_paint_mode(mode);
drw_engines_enable_from_overlays(v3d->overlay.flag);
drw_engines_enable_from_object_mode();
drw_engines_enable_from_mode(mode);
@@ -1648,6 +1664,7 @@ void DRW_draw_select_loop(
/* Get list of enabled engines */
if (use_obedit) {
+ drw_engines_enable_from_paint_mode(obedit_mode);
drw_engines_enable_from_mode(obedit_mode);
}
else {