[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