[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