[Bf-blender-cvs] [a5ef81c5da1] temp-workspace-object-mode-removal: Remove EvaluationContext from DRWContextState
Campbell Barton
noreply at git.blender.org
Mon Feb 5 11:29:40 CET 2018
Commit: a5ef81c5da1ea0ccb5cc002ac1783c94348c26a8
Author: Campbell Barton
Date: Mon Feb 5 21:29:41 2018 +1100
Branches: temp-workspace-object-mode-removal
https://developer.blender.org/rBa5ef81c5da1ea0ccb5cc002ac1783c94348c26a8
Remove EvaluationContext from DRWContextState
Pass object_mode argument instead
===================================================================
M source/blender/blenkernel/BKE_context.h
M source/blender/blenkernel/BKE_paint.h
M source/blender/blenkernel/intern/context.c
M source/blender/blenkernel/intern/paint.c
M source/blender/draw/DRW_engine.h
M source/blender/draw/engines/clay/clay_engine.c
M source/blender/draw/engines/eevee/eevee_materials.c
M source/blender/draw/engines/eevee/eevee_motion_blur.c
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_armature.c
M source/blender/draw/intern/draw_common.c
M source/blender/draw/intern/draw_manager.c
M source/blender/draw/intern/draw_view.c
M source/blender/draw/modes/object_mode.c
M source/blender/draw/modes/pose_mode.c
M source/blender/editors/interface/interface_handlers.c
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/editors/space_view3d/drawobject.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_view.c
M source/blender/editors/transform/transform_generics.c
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index 52dca0b1964..cd7ed7ea60d 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -261,7 +261,7 @@ struct ToolSettings *CTX_data_tool_settings(const bContext *C);
const char *CTX_data_mode_string(const bContext *C);
int CTX_data_mode_enum_ex(
- const struct EvaluationContext *eval_ctx,
+ const short object_mode,
const struct Object *obedit, const struct Object *ob);
int CTX_data_mode_enum(const bContext *C);
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 177e3e95444..222b2eefc44 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -130,7 +130,7 @@ void BKE_paint_cavity_curve_preset(struct Paint *p, int preset);
short BKE_paint_object_mode_from_paint_mode(ePaintMode mode);
struct Paint *BKE_paint_get_active_from_paintmode(struct Scene *sce, ePaintMode mode);
struct Paint *BKE_paint_get_active(
- const struct EvaluationContext *eval_ctx, struct Scene *sce, struct ViewLayer *view_layer);
+ struct Scene *sce, struct ViewLayer *view_layer, const short object_mode);
struct Paint *BKE_paint_get_active_from_context(const struct bContext *C);
ePaintMode BKE_paintmode_get_active_from_context(const struct bContext *C);
struct Brush *BKE_paint_brush(struct Paint *paint);
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 936e373c0a8..99a86f3062c 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -997,7 +997,7 @@ SceneCollection *CTX_data_scene_collection(const bContext *C)
return BKE_collection_master(&scene->id);
}
-int CTX_data_mode_enum_ex(const EvaluationContext *eval_ctx, const Object *obedit, const Object *ob)
+int CTX_data_mode_enum_ex(const short object_mode, const Object *obedit, const Object *ob)
{
// Object *obedit = CTX_data_edit_object(C);
if (obedit) {
@@ -1021,12 +1021,12 @@ int CTX_data_mode_enum_ex(const EvaluationContext *eval_ctx, const Object *obedi
else {
// Object *ob = CTX_data_active_object(C);
if (ob) {
- if (eval_ctx->object_mode & OB_MODE_POSE) return CTX_MODE_POSE;
- else if (eval_ctx->object_mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
- else if (eval_ctx->object_mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
- else if (eval_ctx->object_mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
- else if (eval_ctx->object_mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
- else if (eval_ctx->object_mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
+ if (object_mode & OB_MODE_POSE) return CTX_MODE_POSE;
+ else if (object_mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
+ else if (object_mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
+ else if (object_mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
+ else if (object_mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
+ else if (object_mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
}
}
@@ -1039,7 +1039,7 @@ int CTX_data_mode_enum(const bContext *C)
CTX_data_eval_ctx(C, &eval_ctx);
Object *obedit = CTX_data_edit_object(C);
Object *obact = obedit ? NULL : CTX_data_active_object(C);
- return CTX_data_mode_enum_ex(&eval_ctx, obedit, obact);
+ return CTX_data_mode_enum_ex(eval_ctx.object_mode, obedit, obact);
}
/* would prefer if we can use the enum version below over this one - Campbell */
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index f34acdd0cca..312a2f12ba6 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -78,7 +78,7 @@ static eOverlayControlFlags overlay_flags = 0;
void BKE_paint_invalidate_overlay_tex(
const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, const Tex *tex)
{
- Paint *p = BKE_paint_get_active(eval_ctx, scene, view_layer);
+ Paint *p = BKE_paint_get_active(scene, view_layer, eval_ctx->object_mode);
Brush *br = p->brush;
if (!br)
@@ -93,7 +93,7 @@ void BKE_paint_invalidate_overlay_tex(
void BKE_paint_invalidate_cursor_overlay(
const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, CurveMapping *curve)
{
- Paint *p = BKE_paint_get_active(eval_ctx, scene, view_layer);
+ Paint *p = BKE_paint_get_active(scene, view_layer, eval_ctx->object_mode);
Brush *br = p->brush;
if (br && br->curve == curve)
@@ -159,13 +159,13 @@ Paint *BKE_paint_get_active_from_paintmode(Scene *sce, ePaintMode mode)
return NULL;
}
-Paint *BKE_paint_get_active(const EvaluationContext *eval_ctx, Scene *sce, ViewLayer *view_layer)
+Paint *BKE_paint_get_active(Scene *sce, ViewLayer *view_layer, const short object_mode)
{
if (sce && view_layer) {
ToolSettings *ts = sce->toolsettings;
if (view_layer->basact && view_layer->basact->object) {
- switch (eval_ctx->object_mode) {
+ switch (object_mode) {
case OB_MODE_SCULPT:
return &ts->sculpt->paint;
case OB_MODE_VERTEX_PAINT:
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index c4946e2a4b8..30470b227b4 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -91,25 +91,25 @@ void DRW_draw_view(const struct bContext *C);
void DRW_draw_render_loop_ex(
struct Depsgraph *depsgraph,
struct RenderEngineType *engine_type,
- struct ARegion *ar, struct View3D *v3d,
+ struct ARegion *ar, struct View3D *v3d, const short object_mode,
const struct bContext *evil_C);
void DRW_draw_render_loop(
struct Depsgraph *depsgraph,
- struct ARegion *ar, struct View3D *v3d);
+ struct ARegion *ar, struct View3D *v3d, const short object_mode);
void DRW_draw_render_loop_offscreen(
struct Depsgraph *depsgraph,
struct RenderEngineType *engine_type,
- struct ARegion *ar, struct View3D *v3d,
+ struct ARegion *ar, struct View3D *v3d, const short object_mode,
const bool draw_background,
struct GPUOffScreen *ofs,
struct GPUViewport *viewport);
void DRW_draw_select_loop(
struct Depsgraph *depsgraph,
- struct ARegion *ar, struct View3D *v3d,
+ struct ARegion *ar, struct View3D *v3d, const short object_mode,
bool use_obedit_skip, bool use_nearest, const struct rcti *rect);
void DRW_draw_depth_loop(
struct Depsgraph *depsgraph,
- struct ARegion *ar, struct View3D *v3d);
+ struct ARegion *ar, struct View3D *v3d, const short object_mode);
/* This is here because GPUViewport needs it */
void DRW_pass_free(struct DRWPass *pass);
diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c
index 606a9c86688..b9a372f802d 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -800,7 +800,6 @@ static void clay_cache_populate(void *vedata, Object *ob)
return;
const DRWContextState *draw_ctx = DRW_context_state_get();
- const EvaluationContext *eval_ctx = &draw_ctx->eval_ctx;
const bool is_active = (ob == draw_ctx->obact);
if (is_active) {
if (DRW_object_is_mode_shade(ob) == true) {
@@ -821,7 +820,7 @@ static void clay_cache_populate(void *vedata, Object *ob)
if (geom) {
IDProperty *ces_mode_ob = BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_OBJECT, "");
const bool do_cull = BKE_collection_engine_property_value_get_bool(ces_mode_ob, "show_backface_culling");
- const bool is_sculpt_mode = is_active && (eval_ctx->object_mode & OB_MODE_SCULPT) != 0;
+ const bool is_sculpt_mode = is_active && (draw_ctx->object_mode & OB_MODE_SCULPT) != 0;
const bool is_default_mode_shader = is_sculpt_mode;
/* Depth Prepass */
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index 2f423a6379e..9754bfbd78b 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -1235,14 +1235,13 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sld
EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl;
EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl;
const DRWContextState *draw_ctx = DRW_context_state_get();
- const EvaluationContext *eval_ctx = &draw_ctx->eval_ctx;
Scene *scene = draw_ctx->scene;
GHash *material_hash = stl->g_data->material_hash;
IDProperty *ces_mode_ob = BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_OBJECT, "");
const bool do_cull = BKE_collection_engine_property_value_get_bool(ces_mode_ob, "show_backface_culling");
const bool is_active = (ob == draw_ctx->obact);
- const bool is_sculpt_mode = is_active && (eval_ctx->object_mode & OB_MODE_SCULPT) != 0;
+ const bool is_sculpt_mode = is_active && (draw_ctx->object_mode & OB_MODE_SCULPT) != 0;
#if 0
const bool is_sculpt_mode_draw = is_sculpt_mode && (draw_ctx->v3d->flag2 & V3D_SHOW_MODE_SHADE_OVERRIDE) == 0;
#else
diff --git a/source/blender/draw/engines/eevee/eevee_motion_blur.c b/source/blender/draw/engines/eevee/eevee_motion_blur.c
index 5de1030b1cb..53fff5de50e 100644
--- a/source/blender/draw/engines/eevee/eevee_motion_blur.c
+++ b/source/blender/draw/engines/eevee/eevee_motion_blur.c
@@ -79,7 +79,7 @@ static void eevee_motion_blur_camera_get_matrix_at_time(
scene,
draw_ctx->view_layer,
draw_ctx->engine_type,
- draw_ctx->eval_ctx.object_mode,
+ draw_ctx->object_mode,
DAG_EVAL_VIEWPORT);
eval_ctx.ctime = time;
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 4afc5b108e2..5876e9bc5f6 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -472,11 +472,12 @@ typedef struct DRWContextState {
struct Depsgraph *depsgraph;
+ short object_mode;
+
/* Last resort (some functions ta
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list