[Bf-blender-cvs] [fdb2132] soc-2013-paint: User request: Selecting a slot in the layer panel in projective texture painting will set that texture in the image editor.

Antony Riakiotakis noreply at git.blender.org
Wed Mar 12 22:04:40 CET 2014


Commit: fdb2132d66ca1a18520c90677fb0f2fb5c6a2f69
Author: Antony Riakiotakis
Date:   Wed Mar 12 23:04:31 2014 +0200
https://developer.blender.org/rBfdb2132d66ca1a18520c90677fb0f2fb5c6a2f69

User request: Selecting a slot in the layer panel in projective texture
painting will set that texture in the image editor.

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

M	source/blender/makesrna/intern/rna_material.c

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

diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index 9b9c98f..457a58d 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -29,12 +29,16 @@
 
 #include "DNA_material_types.h"
 #include "DNA_texture_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
 
 #include "RNA_define.h"
 #include "RNA_enum_types.h"
 
 #include "rna_internal.h"
 
+#include "ED_image.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -177,6 +181,29 @@ static int rna_texture_paint_material(CollectionPropertyIterator *UNUSED(iter),
 	return 1;
 }
 
+static void rna_Material_active_paint_texture_index_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+	bScreen *sc;
+	Material *ma = ptr->id.data;
+	refresh_texpaint_image_cache(ma);
+
+	for (sc = bmain->screen.first; sc; sc = sc->id.next) {
+		ScrArea *sa;
+		for (sa = sc->areabase.first; sa; sa = sa->next) {
+			SpaceLink *sl;
+			for (sl = sa->spacedata.first; sl; sl = sl->next) {
+				if (sl->spacetype == SPACE_IMAGE) {
+						SpaceImage *sima = (SpaceImage *)sl;
+						ED_space_image_set(sima, scene, scene->obedit, ma->texpaintima);
+				}
+			}
+		}
+	}
+
+	DAG_id_tag_update(&ma->id, 0);
+	WM_main_add_notifier(NC_MATERIAL | ND_SHADING, ma);
+}
+
 static void rna_MaterialTexturePaint_mtex_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
 {
 	Material *ma = (Material *)ptr->data;
@@ -2162,7 +2189,7 @@ void rna_def_mtex_texpaint(StructRNA *srna, const char *structname)
 	RNA_def_property_int_sdna(prop, NULL, "texactpaint");
 	RNA_def_property_range(prop, 0, MAX_MTEX - 1);
 	RNA_def_property_ui_text(prop, "Active Paint Texture Index", "Index of active texture paint slot");
-	RNA_def_property_update(prop, NC_MATERIAL | ND_SHADING_LINKS, "rna_Material_update");
+	RNA_def_property_update(prop, NC_MATERIAL | ND_SHADING_LINKS, "rna_Material_active_paint_texture_index_update");
 }




More information about the Bf-blender-cvs mailing list