[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35754] trunk/blender/source/blender: Bugfix #26584
Ton Roosendaal
ton at blender.org
Thu Mar 24 15:31:59 CET 2011
Revision: 35754
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35754
Author: ton
Date: 2011-03-24 14:31:58 +0000 (Thu, 24 Mar 2011)
Log Message:
-----------
Bugfix #26584
- Colormanagement code was gamma correcting non-RGBA buffers in composite.
(Like vector buffers).
- Crash on using "use Color Management" button during composites, because
it was freeing all node images. Added code to stop first jobs before
freeing. It sends notifier for recomposites after free anyway.
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_scene.c
trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_image.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c 2011-03-24 14:19:12 UTC (rev 35753)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c 2011-03-24 14:31:58 UTC (rev 35754)
@@ -54,6 +54,7 @@
#include <libavformat/avformat.h>
#endif
+#include "WM_api.h"
#include "WM_types.h"
#include "BLI_threads.h"
@@ -754,6 +755,9 @@
bNode *node;
if(ntree && scene->use_nodes) {
+ /* XXX images are freed here, stop render and preview threads, until Image is threadsafe */
+ WM_jobs_stop_all(bmain->wm.first);
+
for (node=ntree->nodes.first; node; node=node->next) {
if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_IMAGE)) {
ED_node_changed_update(&scene->id, node);
Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_image.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_image.c 2011-03-24 14:19:12 UTC (rev 35753)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_image.c 2011-03-24 14:31:58 UTC (rev 35754)
@@ -80,9 +80,9 @@
IMB_float_from_rect(ibuf);
}
- /* now we need a float buffer from the image
- * with matching color management */
- if(ibuf->channels == 4) {
+ /* now we need a float buffer from the image with matching color management */
+ /* XXX weak code, multilayer is excluded from this */
+ if(ibuf->channels == 4 && ima->rr==NULL) {
if(rd->color_mgt_flag & R_COLOR_MANAGEMENT) {
if(ibuf->profile != IB_PROFILE_NONE) {
rect= ibuf->rect_float;
More information about the Bf-blender-cvs
mailing list