[Bf-blender-cvs] [3b7794d] master: Fix T42330 game engine does not allow texture slots generation.

Antony Riakiotakis noreply at git.blender.org
Thu Oct 23 13:39:58 CEST 2014


Commit: 3b7794dab727897967abd829562c2328900225cf
Author: Antony Riakiotakis
Date:   Thu Oct 23 13:39:45 2014 +0200
Branches: master
https://developer.blender.org/rB3b7794dab727897967abd829562c2328900225cf

Fix T42330 game engine does not allow texture slots generation.

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

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/BKE_scene.h
M	source/blender/blenkernel/intern/material.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/editors/sculpt_paint/paint_image_proj.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index da64caa..81cdaf6 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -1058,7 +1058,7 @@ class TEXTURE_UL_texpaintslots(UIList):
 
         if self.layout_type in {'DEFAULT', 'COMPACT'}:
             layout.prop(item, "name", text="", emboss=False, icon_value=icon)
-            if (not mat.use_nodes) and (context.scene.render.engine == 'BLENDER_RENDER'):
+            if (not mat.use_nodes) and context.scene.render.engine in {'BLENDER_RENDER', 'BLENDER_GAME'}:
                 mtex_index = mat.texture_paint_slots[index].index
                 layout.prop(mat, "use_textures", text="", index=mtex_index)
         elif self.layout_type in {'GRID'}:
@@ -1115,7 +1115,7 @@ class VIEW3D_PT_slots_projectpaint(View3DPanel, Panel):
                                   mat, "texture_paint_images",
                                   mat, "paint_active_slot", rows=2)
 
-                if (not mat.use_nodes) and (context.scene.render.engine == 'BLENDER_RENDER'):
+                if (not mat.use_nodes) and context.scene.render.engine in {'BLENDER_RENDER', 'BLENDER_GAME'}:
                     row = col.row(align=True)
                     row.operator_menu_enum("paint.add_texture_paint_slot", "type")
                     row.operator("paint.delete_texture_paint_slot", text="", icon='X')
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 1bfe0ee..efcd00b 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -131,7 +131,9 @@ int get_render_shadow_samples(struct RenderData *r, int samples);
 float get_render_aosss_error(struct RenderData *r, float error);
 
 bool BKE_scene_use_new_shading_nodes(struct Scene *scene);
+
 bool BKE_scene_uses_blender_internal(struct Scene *scene);
+bool BKE_scene_uses_blender_game(struct Scene *scene);
 
 void BKE_scene_disable_color_management(struct Scene *scene);
 bool BKE_scene_check_color_management_enabled(const struct Scene *scene);
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index eeca60f..ea1b9a3f 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -1320,7 +1320,7 @@ void BKE_texpaint_slot_refresh_cache(Scene *scene, Material *ma)
 	short index = 0, i;
 
 	bool use_nodes = BKE_scene_use_new_shading_nodes(scene);
-	bool is_bi = BKE_scene_uses_blender_internal(scene);
+	bool is_bi = BKE_scene_uses_blender_internal(scene) || BKE_scene_uses_blender_game(scene);
 	
 	if (!ma)
 		return;
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 5bfd6e8..9e6e499 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1905,6 +1905,10 @@ bool BKE_scene_uses_blender_internal(struct Scene *scene)
 	return strcmp("BLENDER_RENDER", scene->r.engine) == 0;
 }
 
+bool BKE_scene_uses_blender_game(struct Scene *scene)
+{
+	return strcmp("BLENDER_GAME", scene->r.engine) == 0;
+}
 
 void BKE_scene_base_flag_to_objects(struct Scene *scene)
 {
diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c
index 791c1b3..304ca85 100644
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@ -5027,7 +5027,7 @@ static bool proj_paint_add_slot(bContext *C, wmOperator *op)
 	Object *ob = CTX_data_active_object(C);
 	Scene *scene = CTX_data_scene(C);
 	Material *ma;
-	bool is_bi = BKE_scene_uses_blender_internal(scene);
+	bool is_bi = BKE_scene_uses_blender_internal(scene) || BKE_scene_uses_blender_game(scene);
 	Image *ima = NULL;
 
 	if (!ob)
@@ -5183,7 +5183,7 @@ 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_bi = BKE_scene_uses_blender_internal(scene);
+	bool is_bi = BKE_scene_uses_blender_internal(scene) || BKE_scene_uses_blender_game(scene);
 	TexPaintSlot *slot;
 	
 	/* not supported for node-based engines */




More information about the Bf-blender-cvs mailing list