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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to