[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49505] trunk/blender/source/blender/ editors/object/object_add.c: Fix #31753: GLSL not updated after deleting lights in multiple-scene setting

Sergey Sharybin sergey.vfx at gmail.com
Thu Aug 2 17:49:21 CEST 2012


Revision: 49505
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49505
Author:   nazgul
Date:     2012-08-02 15:49:20 +0000 (Thu, 02 Aug 2012)
Log Message:
-----------
Fix #31753: GLSL not updated after deleting lights in multiple-scene setting

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_add.c

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2012-08-02 14:21:25 UTC (rev 49504)
+++ trunk/blender/source/blender/editors/object/object_add.c	2012-08-02 15:49:20 UTC (rev 49505)
@@ -105,6 +105,8 @@
 #include "UI_interface.h"
 #include "UI_resources.h"
 
+#include "GPU_material.h"
+
 #include "object_intern.h"
 
 /* this is an exact copy of the define in rna_lamp.c
@@ -893,12 +895,24 @@
 
 /**************************** Delete Object *************************/
 
+static void object_delete_check_glsl_update(Object *ob)
+{
+	/* some objects could affect on GLSL shading, make sure GLSL settings
+	 * are being tagged to be updated when object is removing from scene
+	 */
+	if (ob->type == OB_LAMP) {
+        if (ob->gpulamp.first)
+			GPU_lamp_free(ob);
+	}
+}
+
 /* remove base from a specific scene */
 /* note: now unlinks constraints as well */
 void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Base *base)
 {
 	DAG_id_type_tag(bmain, ID_OB);
 	BLI_remlink(&scene->base, base);
+	object_delete_check_glsl_update(base->object);
 	BKE_libblock_free_us(&bmain->object, base->object);
 	if (scene->basact == base) scene->basact = NULL;
 	MEM_freeN(base);




More information about the Bf-blender-cvs mailing list