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:
authorSebastian Parborg <darkdefende@gmail.com>2019-04-09 13:29:02 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-04-09 13:29:02 +0300
commitcc74020b5ac7d974e91279e23efc80141c229b3c (patch)
treeb48fe326706a8974f30385f8d861bcdd2bda0e7e /source/blender/draw
parentf55026d46861a3cb0108ad3f7bab8ed0610f660d (diff)
Fix T62114: Wireframe mode selection: selects backside objects when clicking frontside object in 3d-window
Now the depth order of objects when trying to select them is only used when not in X-ray mode. Before, this was only the case in wireframe mode regardless of X-ray settings. I've also unified the usage of V3D_XRAY and XRAY_FLAG as they were basically copies of each other. Reviewed By: Clément Differential Revision: http://developer.blender.org/D4504
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/gpencil/gpencil_engine.c2
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c1
-rw-r--r--source/blender/draw/engines/workbench/workbench_render.c2
-rw-r--r--source/blender/draw/intern/DRW_render.h4
-rw-r--r--source/blender/draw/modes/edit_armature_mode.c2
-rw-r--r--source/blender/draw/modes/edit_mesh_mode.c2
-rw-r--r--source/blender/draw/modes/object_mode.c3
-rw-r--r--source/blender/draw/modes/overlay_mode.c2
-rw-r--r--source/blender/draw/modes/pose_mode.c2
9 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 56ef4b97dcf..303178c1a5e 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -405,7 +405,7 @@ void GPENCIL_cache_init(void *vedata)
/* xray mode */
if (v3d) {
- stl->storage->is_xray = (v3d->shading.flag & V3D_XRAY_FLAG(v3d)) ? 1 : 0;
+ stl->storage->is_xray = XRAY_ACTIVE(v3d);
}
else {
stl->storage->is_xray = 0;
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index 45f1c632a05..a6c41f41198 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -38,6 +38,7 @@
#include "DNA_modifier_types.h"
#include "DNA_node_types.h"
+#include "ED_view3d.h"
#include "GPU_shader.h"
#include "GPU_texture.h"
diff --git a/source/blender/draw/engines/workbench/workbench_render.c b/source/blender/draw/engines/workbench/workbench_render.c
index c551a369b58..7ad8eea1c6e 100644
--- a/source/blender/draw/engines/workbench/workbench_render.c
+++ b/source/blender/draw/engines/workbench/workbench_render.c
@@ -28,6 +28,8 @@
#include "DRW_render.h"
+#include "ED_view3d.h"
+
#include "GPU_shader.h"
#include "DEG_depsgraph.h"
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 3d4618021e8..ce75cc0f05d 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -598,8 +598,4 @@ typedef struct DRWContextState {
const DRWContextState *DRW_context_state_get(void);
-#define XRAY_ALPHA(v3d) (((v3d)->shading.type == OB_WIRE) ? (v3d)->shading.xray_alpha_wire : (v3d)->shading.xray_alpha)
-#define XRAY_FLAG(v3d) (((v3d)->shading.type == OB_WIRE) ? V3D_SHADING_XRAY_BONE : V3D_SHADING_XRAY)
-#define XRAY_ENABLED(v3d) ((((v3d)->shading.flag & XRAY_FLAG(v3d)) != 0) && (XRAY_ALPHA(v3d) < 1.0f))
-
#endif /* __DRW_RENDER_H__ */
diff --git a/source/blender/draw/modes/edit_armature_mode.c b/source/blender/draw/modes/edit_armature_mode.c
index 68f091da797..26d232600d0 100644
--- a/source/blender/draw/modes/edit_armature_mode.c
+++ b/source/blender/draw/modes/edit_armature_mode.c
@@ -26,6 +26,8 @@
#include "DNA_armature_types.h"
#include "DNA_view3d_types.h"
+#include "ED_view3d.h"
+
#include "draw_common.h"
#include "draw_mode_engines.h"
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 71c759d47a5..01bd43d9c6e 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -43,6 +43,8 @@
#include "BLI_dynstr.h"
#include "BLI_string_utils.h"
+#include "ED_view3d.h"
+
extern char datatoc_paint_weight_vert_glsl[];
extern char datatoc_paint_weight_frag_glsl[];
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 563d1267885..94935da0f05 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1011,8 +1011,7 @@ static void OBJECT_cache_init(void *vedata)
}
g_data = stl->g_data;
- g_data->xray_enabled = XRAY_ENABLED(draw_ctx->v3d) &&
- (draw_ctx->v3d->shading.type < OB_MATERIAL);
+ g_data->xray_enabled = XRAY_ACTIVE(draw_ctx->v3d);
g_data->xray_enabled_and_not_wire = g_data->xray_enabled && draw_ctx->v3d->shading.type > OB_WIRE;
{
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index 52e8f73f971..99102a22622 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -34,6 +34,8 @@
#include "GPU_shader.h"
#include "DRW_render.h"
+#include "ED_view3d.h"
+
#include "draw_mode_engines.h"
#ifdef __APPLE__
diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c
index c4050bf3f1a..ec61eb99d52 100644
--- a/source/blender/draw/modes/pose_mode.c
+++ b/source/blender/draw/modes/pose_mode.c
@@ -27,6 +27,8 @@
#include "DRW_engine.h"
#include "DRW_render.h"
+#include "ED_view3d.h"
+
/* If builtin shaders are needed */
#include "GPU_shader.h"