[Bf-blender-cvs] [5db950e860b] blender2.8: Cleanup: use workspace for object_mode when possible
Campbell Barton
noreply at git.blender.org
Fri Feb 9 12:17:30 CET 2018
Commit: 5db950e860b2f64078cfc8cf00cb4f430b8a1baf
Author: Campbell Barton
Date: Fri Feb 9 22:14:17 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB5db950e860b2f64078cfc8cf00cb4f430b8a1baf
Cleanup: use workspace for object_mode when possible
===================================================================
M source/blender/blenkernel/BKE_object.h
M source/blender/blenkernel/BKE_paint.h
M source/blender/blenkernel/intern/DerivedMesh.c
M source/blender/blenkernel/intern/context.c
M source/blender/blenkernel/intern/object.c
M source/blender/blenkernel/intern/paint.c
M source/blender/editors/armature/pose_select.c
M source/blender/editors/interface/interface_icons.c
M source/blender/editors/mesh/editmesh_select.c
M source/blender/editors/mesh/mesh_data.c
M source/blender/editors/object/object_bake.c
M source/blender/editors/object/object_edit.c
M source/blender/editors/object/object_facemap_ops.c
M source/blender/editors/object/object_modifier.c
M source/blender/editors/object/object_ops.c
M source/blender/editors/object/object_relations.c
M source/blender/editors/object/object_select.c
M source/blender/editors/object/object_shapekey.c
M source/blender/editors/object/object_transform.c
M source/blender/editors/object/object_vgroup.c
M source/blender/editors/physics/particle_edit.c
M source/blender/editors/render/render_shading.c
M source/blender/editors/screen/screen_context.c
M source/blender/editors/screen/screen_ops.c
M source/blender/editors/sculpt_paint/paint_curve.c
M source/blender/editors/sculpt_paint/paint_image.c
M source/blender/editors/sculpt_paint/paint_image_proj.c
M source/blender/editors/sculpt_paint/paint_ops.c
M source/blender/editors/sculpt_paint/paint_vertex.c
M source/blender/editors/sculpt_paint/paint_vertex_color_ops.c
M source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
M source/blender/editors/sculpt_paint/sculpt.c
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/editors/space_image/image_edit.c
M source/blender/editors/space_outliner/outliner_edit.c
M source/blender/editors/space_outliner/outliner_select.c
M source/blender/editors/space_view3d/drawobject.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/space_view3d/view3d_buttons.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_draw_legacy.c
M source/blender/editors/space_view3d/view3d_edit.c
M source/blender/editors/space_view3d/view3d_header.c
M source/blender/editors/space_view3d/view3d_intern.h
M source/blender/editors/space_view3d/view3d_select.c
M source/blender/editors/space_view3d/view3d_snap.c
M source/blender/editors/transform/transform.c
M source/blender/editors/transform/transform_generics.c
M source/blender/editors/transform/transform_manipulator.c
M source/blender/editors/transform/transform_orientations.c
M source/blender/editors/util/undo.c
M source/blender/makesrna/intern/rna_object.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/nodes/texture/node_texture_tree.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 9ed4da87395..536b21e83ce 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -85,7 +85,7 @@ void BKE_object_copy_proxy_drivers(struct Object *ob, struct Object *target);
bool BKE_object_exists_check(struct Object *obtest);
bool BKE_object_is_in_editmode(const struct Object *ob);
bool BKE_object_is_in_editmode_vgroup(struct Object *ob);
-bool BKE_object_is_in_wpaint_select_vert(const struct EvaluationContext *eval_ctx, const struct Object *ob);
+bool BKE_object_is_in_wpaint_select_vert(const struct Object *ob, eObjectMode object_mode);
typedef enum eObjectVisibilityCheck {
OB_VISIBILITY_CHECK_FOR_VIEWPORT,
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 17f6438870c..2840971f157 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -147,12 +147,9 @@ bool BKE_paint_proj_mesh_data_check(struct Scene *scene, struct Object *ob, bool
/* testing face select mode
* Texture paint could be removed since selected faces are not used
* however hiding faces is useful */
-bool BKE_paint_select_face_test(
- const struct EvaluationContext *eval_ctx, struct Object *ob);
-bool BKE_paint_select_vert_test(
- const struct EvaluationContext *eval_ctx, struct Object *ob);
-bool BKE_paint_select_elem_test(
- const struct EvaluationContext *eval_ctx, struct Object *ob);
+bool BKE_paint_select_face_test(struct Object *ob, eObjectMode object_mode);
+bool BKE_paint_select_vert_test(struct Object *ob, eObjectMode object_mode);
+bool BKE_paint_select_elem_test(struct Object *ob, eObjectMode object_mode);
/* partial visibility */
bool paint_is_face_hidden(const struct MLoopTri *lt, const struct MVert *mvert, const struct MLoop *mloop);
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 5229cb35645..67463ffe915 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -2721,7 +2721,7 @@ static CustomDataMask object_get_datamask(
}
if (ob == actob) {
- bool editing = BKE_paint_select_face_test(eval_ctx, ob);
+ bool editing = BKE_paint_select_face_test(ob, eval_ctx->object_mode);
/* weight paint and face select need original indices because of selection buffer drawing */
if (r_need_mapping) {
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 8b7356eaa9e..2af3b6ce593 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1035,11 +1035,10 @@ int CTX_data_mode_enum_ex(const Object *obedit, const Object *ob, const eObjectM
int CTX_data_mode_enum(const bContext *C)
{
- EvaluationContext eval_ctx;
- CTX_data_eval_ctx(C, &eval_ctx);
+ const WorkSpace *workspace = CTX_wm_workspace(C);
Object *obedit = CTX_data_edit_object(C);
Object *obact = obedit ? NULL : CTX_data_active_object(C);
- return CTX_data_mode_enum_ex(obedit, obact, eval_ctx.object_mode);
+ return CTX_data_mode_enum_ex(obedit, obact, workspace->object_mode);
}
/* would prefer if we can use the enum version below over this one - Campbell */
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 127830c0cf7..a0d2e7d76c8 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -538,11 +538,11 @@ bool BKE_object_is_in_editmode_vgroup(Object *ob)
BKE_object_is_in_editmode(ob));
}
-bool BKE_object_is_in_wpaint_select_vert(const EvaluationContext *eval_ctx, const Object *ob)
+bool BKE_object_is_in_wpaint_select_vert(const Object *ob, eObjectMode object_mode)
{
if (ob->type == OB_MESH) {
const Mesh *me = ob->data;
- return ((eval_ctx->object_mode & OB_MODE_WEIGHT_PAINT) &&
+ return ((object_mode & OB_MODE_WEIGHT_PAINT) &&
(me->edit_btmesh == NULL) &&
(ME_EDIT_PAINT_SEL_MODE(me) == SCE_SELECT_VERTEX));
}
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index 5a267f97d03..81943d470dc 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -41,6 +41,7 @@
#include "DNA_scene_types.h"
#include "DNA_brush_types.h"
#include "DNA_space_types.h"
+#include "DNA_workspace_types.h"
#include "BLI_bitmap.h"
#include "BLI_utildefines.h"
@@ -235,9 +236,7 @@ Paint *BKE_paint_get_active_from_context(const bContext *C)
SpaceImage *sima;
if (sce && view_layer) {
- EvaluationContext eval_ctx;
- CTX_data_eval_ctx(C, &eval_ctx);
-
+ const WorkSpace *workspace = CTX_wm_workspace(C);
ToolSettings *ts = sce->toolsettings;
Object *obact = NULL;
@@ -245,7 +244,7 @@ Paint *BKE_paint_get_active_from_context(const bContext *C)
obact = view_layer->basact->object;
if ((sima = CTX_wm_space_image(C)) != NULL) {
- if (obact && eval_ctx.object_mode == OB_MODE_EDIT) {
+ if (obact && workspace->object_mode == OB_MODE_EDIT) {
if (sima->mode == SI_MODE_PAINT)
return &ts->imapaint.paint;
else if (ts->use_uv_sculpt)
@@ -256,7 +255,7 @@ Paint *BKE_paint_get_active_from_context(const bContext *C)
}
}
else if (obact) {
- switch (eval_ctx.object_mode) {
+ switch (workspace->object_mode) {
case OB_MODE_SCULPT:
return &ts->sculpt->paint;
case OB_MODE_VERTEX_PAINT:
@@ -289,9 +288,7 @@ ePaintMode BKE_paintmode_get_active_from_context(const bContext *C)
SpaceImage *sima;
if (sce && view_layer) {
- EvaluationContext eval_ctx;
- CTX_data_eval_ctx(C, &eval_ctx);
-
+ const WorkSpace *workspace = CTX_wm_workspace(C);
ToolSettings *ts = sce->toolsettings;
Object *obact = NULL;
@@ -299,7 +296,7 @@ ePaintMode BKE_paintmode_get_active_from_context(const bContext *C)
obact = view_layer->basact->object;
if ((sima = CTX_wm_space_image(C)) != NULL) {
- if (obact && eval_ctx.object_mode == OB_MODE_EDIT) {
+ if (obact && workspace->object_mode == OB_MODE_EDIT) {
if (sima->mode == SI_MODE_PAINT)
return ePaintTexture2D;
else if (ts->use_uv_sculpt)
@@ -310,7 +307,7 @@ ePaintMode BKE_paintmode_get_active_from_context(const bContext *C)
}
}
else if (obact) {
- switch (eval_ctx.object_mode) {
+ switch (workspace->object_mode) {
case OB_MODE_SCULPT:
return ePaintSculpt;
case OB_MODE_VERTEX_PAINT:
@@ -501,24 +498,24 @@ bool BKE_palette_is_empty(const struct Palette *palette)
/* are we in vertex paint or weight pain face select mode? */
-bool BKE_paint_select_face_test(const EvaluationContext *eval_ctx, Object *ob)
+bool BKE_paint_select_face_test(Object *ob, eObjectMode object_mode)
{
return ( (ob != NULL) &&
(ob->type == OB_MESH) &&
(ob->data != NULL) &&
(((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_FACE_SEL) &&
- (eval_ctx->object_mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT))
+ (object_mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT))
);
}
/* are we in weight paint vertex select mode? */
-bool BKE_paint_select_vert_test(const EvaluationContext *eval_ctx, Object *ob)
+bool BKE_paint_select_vert_test(Object *ob, eObjectMode object_mode)
{
return ( (ob != NULL) &&
(ob->type == OB_MESH) &&
(ob->data != NULL) &&
(((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_VERT_SEL) &&
- (eval_ctx->object_mode & OB_MODE_WEIGHT_PAINT || eval_ctx->object_mode & OB_MODE_VERTEX_PAINT)
+ (object_mode & OB_MODE_WEIGHT_PAINT || object_mode & OB_MODE_VERTEX_PAINT)
);
}
@@ -526,10 +523,10 @@ bool BKE_paint_select_vert_test(const EvaluationContext *eval_ctx, Object *ob)
* used to check if selection is possible
* (when we don't care if its face or vert)
*/
-bool BKE_paint_select_elem_test(const EvaluationContext *eval_ctx, Object *ob)
+bool BKE_paint_select_elem_test(Object *ob, eObjectMode object_mode)
{
- return (BKE_paint_select_vert_test(eval_ctx, ob) ||
- BKE_paint_select_face_test(eval_ctx, ob));
+ return (BKE_paint_select_vert_test(ob, object_mode) ||
+ BKE_paint_select_face_test(ob, object_mode));
}
void BKE_paint_cavity_curve_preset(Paint *p, int preset)
diff --git a/source/blender/editors/armature/pose_select.c b/source/blender/editors/armature/pose_select.c
index 14baa1fb179..a43f3ff4acc 100644
--- a/source/blender/editors/armature/pose_select.c
+++ b/source/blender/editors/armature/pose_select.c
@@ -874,9 +874,7 @@ void POSE_OT_select_grouped(wmOperatorType *ot)
*/
static int pose_select_mirror_exec(bContext *C, wmOperator *op)
{
- EvaluationContext eval_ctx;
- CTX_data_eval_ctx(C, &eval_ctx);
-
+ const WorkSpace *workspace = CTX_wm_workspace(C);
Object *ob_act = CTX_data_active_object(C);
Object *ob = BKE_object_pose_armature_get(ob_act);
bArmature *arm;
@@ -920,7 +918,7 @@ static int pose_select_mirror_exec(bContext *C, wmOperator *op)
arm->act_bone = pchan_mirror_act->bone;
/* in weightpaint we select the associated vertex group too */
- if (eval_ctx.object_mode & OB_MODE_WEIGHT_PAINT) {
+ if (workspace->object_mode & OB_MODE_WEIGHT_PAINT) {
ED_vgroup_select_by_name(ob_act, pchan_mirror_act->name);
DEG_id_tag_update(&ob_act->id, OB_RECALC_DATA);
}
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 2941b08b7ad..f2798cedae1 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -46,6 +46,7 @@
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "DNA_workspace_types.h"
#include "RNA_access.h"
#include "RNA_enum_types.h"
@@ -1195,8 +1196,7 @@ static int ui_id_brush_get_icon(const bContext *C, ID *id)
ui_id_icon_render(C, id, true);
}
else {
- EvaluationContext eval_ctx;
- CTX_data_eval_ctx(C, &eval_ctx);
+ const WorkSpace *workspace = CTX_wm_workspac
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list