[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19846] trunk/blender/source/blender/imbuf /intern/openexr/openexr_api.cpp: Bugfix #18519
Ton Roosendaal
ton at blender.org
Tue Apr 21 15:30:58 CEST 2009
Revision: 19846
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19846
Author: ton
Date: 2009-04-21 15:30:58 +0200 (Tue, 21 Apr 2009)
Log Message:
-----------
Bugfix #18519
MultiLayer save (F3) crashes when no rendering/layers exist, happens for
opengl preview render. It now survives, saving empty file and prints error.
Better solution for later: render profiles!
Modified Paths:
--------------
trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2009-04-21 13:30:12 UTC (rev 19845)
+++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2009-04-21 13:30:58 UTC (rev 19846)
@@ -570,13 +570,17 @@
FrameBuffer frameBuffer;
ExrChannel *echan;
- for(echan= (ExrChannel *)data->channels.first; echan; echan= echan->next)
- frameBuffer.insert (echan->name, Slice (FLOAT, (char *)echan->rect,
- echan->xstride*sizeof(float), echan->ystride*sizeof(float)));
-
- data->ofile->setFrameBuffer (frameBuffer);
- data->ofile->writePixels (data->height);
-
+ if(data->channels.first) {
+ for(echan= (ExrChannel *)data->channels.first; echan; echan= echan->next)
+ frameBuffer.insert (echan->name, Slice (FLOAT, (char *)echan->rect,
+ echan->xstride*sizeof(float), echan->ystride*sizeof(float)));
+
+ data->ofile->setFrameBuffer (frameBuffer);
+ data->ofile->writePixels (data->height);
+ }
+ else {
+ printf("Error: attempt to save MultiLayer without layers.\n");
+ }
}
void IMB_exr_read_channels(void *handle)
More information about the Bf-blender-cvs
mailing list