[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28052] trunk/blender/source/blender: Fix #21166: changing image file path does not update texture preview.

Brecht Van Lommel brecht at blender.org
Tue Apr 6 18:53:50 CEST 2010


Revision: 28052
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28052
Author:   blendix
Date:     2010-04-06 18:53:48 +0200 (Tue, 06 Apr 2010)

Log Message:
-----------
Fix #21166: changing image file path does not update texture preview. I've
made it regenerate previews and icons now for this case. Depsgraph for all
datablocks could solve this much nicer..

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_shading.c
    trunk/blender/source/blender/editors/space_buttons/space_buttons.c
    trunk/blender/source/blender/makesrna/intern/rna_image.c

Modified: trunk/blender/source/blender/editors/render/render_shading.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_shading.c	2010-04-06 16:25:06 UTC (rev 28051)
+++ trunk/blender/source/blender/editors/render/render_shading.c	2010-04-06 16:53:48 UTC (rev 28052)
@@ -196,6 +196,19 @@
 			GPU_material_free(ma);
 }
 
+static void image_changed(Main *bmain, Image *ima)
+{
+	Tex *tex;
+
+	/* icons */
+	BKE_icon_changed(BKE_icon_getid(&ima->id));
+
+	/* textures */
+	for(tex=bmain->tex.first; tex; tex=tex->id.next)
+		if(tex->ima == ima)
+			texture_changed(bmain, tex);
+}
+
 void ED_render_id_flush_update(Main *bmain, ID *id)
 {
 	if(!id)
@@ -214,6 +227,9 @@
 		case ID_LA:
 			lamp_changed(bmain, (Lamp*)id);
 			break;
+		case ID_IM:
+			image_changed(bmain, (Image*)id);
+			break;
 		default:
 			break;
 	}

Modified: trunk/blender/source/blender/editors/space_buttons/space_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/space_buttons.c	2010-04-06 16:25:06 UTC (rev 28051)
+++ trunk/blender/source/blender/editors/space_buttons/space_buttons.c	2010-04-06 16:53:48 UTC (rev 28052)
@@ -341,6 +341,7 @@
 			sbuts->preview= 1;
 			break;
 		case NC_TEXTURE:
+		case NC_IMAGE:
 			ED_area_tag_redraw(sa);
 			sbuts->preview= 1;
 			break;

Modified: trunk/blender/source/blender/makesrna/intern/rna_image.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_image.c	2010-04-06 16:25:06 UTC (rev 28051)
+++ trunk/blender/source/blender/makesrna/intern/rna_image.c	2010-04-06 16:53:48 UTC (rev 28052)
@@ -33,6 +33,7 @@
 #include "DNA_scene_types.h"
 
 #include "BKE_context.h"
+#include "BKE_depsgraph.h"
 #include "BKE_image.h"
 
 #include "WM_types.h"
@@ -78,6 +79,7 @@
 {
 	Image *ima= ptr->id.data;
 	BKE_image_signal(ima, NULL, IMA_SIGNAL_SRC_CHANGE);
+	DAG_id_flush_update(&ima->id, 0);
 }
 
 static void rna_Image_fields_update(Main *bmain, Scene *scene, PointerRNA *ptr)
@@ -105,6 +107,7 @@
 {
 	Image *ima= ptr->id.data;
 	BKE_image_signal(ima, NULL, IMA_SIGNAL_RELOAD);
+	DAG_id_flush_update(&ima->id, 0);
 }
 
 static void rna_Image_generated_update(Main *bmain, Scene *scene, PointerRNA *ptr)





More information about the Bf-blender-cvs mailing list