[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52534] trunk/blender/source/blender: Fix #33282: missing GLSL update assigning a lamp texture.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Nov 24 15:50:41 CET 2012


Revision: 52534
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52534
Author:   blendix
Date:     2012-11-24 14:50:40 +0000 (Sat, 24 Nov 2012)
Log Message:
-----------
Fix #33282: missing GLSL update assigning a lamp texture.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_update.c
    trunk/blender/source/blender/makesrna/intern/rna_lamp.c
    trunk/blender/source/blender/makesrna/intern/rna_texture.c

Modified: trunk/blender/source/blender/editors/render/render_update.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_update.c	2012-11-24 14:50:21 UTC (rev 52533)
+++ trunk/blender/source/blender/editors/render/render_update.c	2012-11-24 14:50:40 UTC (rev 52534)
@@ -250,6 +250,24 @@
 	}
 }
 
+static void lamp_changed(Main *bmain, Lamp *la)
+{
+	Object *ob;
+	Material *ma;
+
+	/* icons */
+	BKE_icon_changed(BKE_icon_getid(&la->id));
+
+	/* glsl */
+	for (ob = bmain->object.first; ob; ob = ob->id.next)
+		if (ob->data == la && ob->gpulamp.first)
+			GPU_lamp_free(ob);
+
+	for (ma = bmain->mat.first; ma; ma = ma->id.next)
+		if (ma->gpumaterial.first)
+			GPU_material_free(ma);
+}
+
 static void texture_changed(Main *bmain, Tex *tex)
 {
 	Material *ma;
@@ -282,16 +300,14 @@
 	/* find lamps */
 	for (la = bmain->lamp.first; la; la = la->id.next) {
 		if (mtex_use_tex(la->mtex, MAX_MTEX, tex)) {
-			/* pass */
+			lamp_changed(bmain, la);
 		}
 		else if (la->nodetree && nodes_use_tex(la->nodetree, tex)) {
-			/* pass */
+			lamp_changed(bmain, la);
 		}
 		else {
 			continue;
 		}
-
-		BKE_icon_changed(BKE_icon_getid(&la->id));
 	}
 
 	/* find worlds */
@@ -320,24 +336,6 @@
 	}
 }
 
-static void lamp_changed(Main *bmain, Lamp *la)
-{
-	Object *ob;
-	Material *ma;
-
-	/* icons */
-	BKE_icon_changed(BKE_icon_getid(&la->id));
-
-	/* glsl */
-	for (ob = bmain->object.first; ob; ob = ob->id.next)
-		if (ob->data == la && ob->gpulamp.first)
-			GPU_lamp_free(ob);
-
-	for (ma = bmain->mat.first; ma; ma = ma->id.next)
-		if (ma->gpumaterial.first)
-			GPU_material_free(ma);
-}
-
 static void world_changed(Main *bmain, World *wo)
 {
 	Material *ma;

Modified: trunk/blender/source/blender/makesrna/intern/rna_lamp.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_lamp.c	2012-11-24 14:50:21 UTC (rev 52533)
+++ trunk/blender/source/blender/makesrna/intern/rna_lamp.c	2012-11-24 14:50:40 UTC (rev 52534)
@@ -421,7 +421,7 @@
 	
 	/* textures */
 	rna_def_mtex_common(brna, srna, "rna_Lamp_mtex_begin", "rna_Lamp_active_texture_get",
-	                    "rna_Lamp_active_texture_set", NULL, "LampTextureSlot", "LampTextureSlots", "rna_Lamp_update");
+	                    "rna_Lamp_active_texture_set", NULL, "LampTextureSlot", "LampTextureSlots", "rna_Lamp_draw_update");
 }
 
 static void rna_def_lamp_falloff(StructRNA *srna)

Modified: trunk/blender/source/blender/makesrna/intern/rna_texture.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_texture.c	2012-11-24 14:50:21 UTC (rev 52533)
+++ trunk/blender/source/blender/makesrna/intern/rna_texture.c	2012-11-24 14:50:40 UTC (rev 52534)
@@ -233,6 +233,7 @@
 			break;
 		case ID_LA:
 			WM_main_add_notifier(NC_LAMP | ND_LIGHTING, id);
+			WM_main_add_notifier(NC_LAMP | ND_LIGHTING_DRAW, id);
 			break;
 		case ID_BR:
 			WM_main_add_notifier(NC_BRUSH, id);




More information about the Bf-blender-cvs mailing list