[Bf-blender-cvs] [be585a2] master: More fixes for renderer material detection

Antony Riakiotakis noreply at git.blender.org
Wed Aug 27 18:52:31 CEST 2014


Commit: be585a25942738ff8da5382a46cb8823d565069a
Author: Antony Riakiotakis
Date:   Wed Aug 27 18:52:17 2014 +0200
Branches: master
https://developer.blender.org/rBbe585a25942738ff8da5382a46cb8823d565069a

More fixes for renderer material detection

===================================================================

M	source/blender/blenkernel/intern/scene.c
M	source/blender/editors/sculpt_paint/paint_image.c
M	source/blender/editors/sculpt_paint/paint_image_proj.c

===================================================================

diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index a41b7f6..eb98e38 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1902,7 +1902,7 @@ bool BKE_scene_use_new_shading_nodes(Scene *scene)
 
 bool BKE_scene_uses_blender_internal(struct Scene *scene)
 {
-	return strcmp("BLENDER_INTERNAL", scene->r.engine);
+	return strcmp("BLENDER_RENDER", scene->r.engine) == 0;
 }
 
 
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index ded8a83..ea6d561 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -1363,6 +1363,7 @@ void paint_proj_mesh_data_ensure(bContext *C, Object *ob, wmOperator *op)
 	Mesh *me;
 	int layernum;
 	ImagePaintSettings *imapaint = &(CTX_data_tool_settings(C)->imapaint);
+	Scene *scene = CTX_data_scene(C);
 	Brush *br = BKE_paint_brush(&imapaint->paint);
 
 	/* no material, add one */
@@ -1380,7 +1381,12 @@ void paint_proj_mesh_data_ensure(bContext *C, Object *ob, wmOperator *op)
 			Material *ma = give_current_material(ob, i);
 			if (ma) {
 				if (!ma->texpaintslot) {
-					proj_paint_add_slot(C, ma, NULL);
+					/* refresh here just in case */
+					BKE_texpaint_slot_refresh_cache(scene, ma);				
+					
+					/* if still no slots, we have to add */
+					if (!ma->texpaintslot)
+						proj_paint_add_slot(C, ma, NULL);
 				}
 			}
 			else {
diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c
index 11501d1..f24c688 100644
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@ -4826,7 +4826,7 @@ bool proj_paint_add_slot(bContext *C, Material *ma, wmOperator *op)
 {
 	Object *ob = CTX_data_active_object(C);
 	Scene *scene = CTX_data_scene(C);
-	bool is_blender_internal = BKE_scene_uses_blender_internal(scene);
+	bool is_bi = BKE_scene_uses_blender_internal(scene);
 
 	if (!ob)
 		return false;
@@ -4836,7 +4836,7 @@ bool proj_paint_add_slot(bContext *C, Material *ma, wmOperator *op)
 
 	if (ma) {
 
-		if (!is_blender_internal || ma->use_nodes) {
+		if (!is_bi || ma->use_nodes) {
 			/* not supported for now */
 		}
 		else {
@@ -4970,12 +4970,12 @@ static int texture_paint_delete_texture_paint_slot_exec(bContext *C, wmOperator
 	Object *ob = CTX_data_active_object(C);
 	Scene *scene = CTX_data_scene(C);
 	Material *ma;
-	bool is_blender_internal = BKE_scene_uses_blender_internal(scene);
+	bool is_bi = BKE_scene_uses_blender_internal(scene);
 	TexPaintSlot *slot;
 	int i;
 	
 	/* not supported for node-based engines */
-	if (!ob || !is_blender_internal)
+	if (!ob || !is_bi)
 		return OPERATOR_CANCELLED;
 	
 	ma = give_current_material(ob, ob->actcol);




More information about the Bf-blender-cvs mailing list