[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