X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_openexr%2Ftrgt_openexr.cpp;h=ccfa5768d333d3712faa24d958cb22901cb4f27d;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=e872d061547a3f98515b87a9f71b94c7eb5c7f77;hpb=f0bb3efdc247acff17a7feb7c3d22911f47959f7;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_openexr/trgt_openexr.cpp b/synfig-core/trunk/src/modules/mod_openexr/trgt_openexr.cpp index e872d06..ccfa576 100644 --- a/synfig-core/trunk/src/modules/mod_openexr/trgt_openexr.cpp +++ b/synfig-core/trunk/src/modules/mod_openexr/trgt_openexr.cpp @@ -1,9 +1,12 @@ -/*! ======================================================================== -** Synfig -** exr_trgt Target Module -** $Id: trgt_openexr.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_openexr.cpp +** \brief exr_trgt Target Module ** +** $Id$ +** +** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -14,6 +17,7 @@ ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** General Public License for more details. +** \endlegal ** ** === N O T E S =========================================================== ** @@ -31,7 +35,6 @@ #endif #include "trgt_openexr.h" -#include #include #include #include @@ -50,7 +53,7 @@ SYNFIG_TARGET_INIT(exr_trgt); SYNFIG_TARGET_SET_NAME(exr_trgt,"openexr"); SYNFIG_TARGET_SET_EXT(exr_trgt,"exr"); SYNFIG_TARGET_SET_VERSION(exr_trgt,"1.0.4"); -SYNFIG_TARGET_SET_CVS_ID(exr_trgt,"$Id: trgt_openexr.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $"); +SYNFIG_TARGET_SET_CVS_ID(exr_trgt,"$Id$"); /* === M E T H O D S ======================================================= */ @@ -70,7 +73,7 @@ exr_trgt::exr_trgt(const char *Filename): #ifndef USE_HALF_TYPE buffer_color=0; #endif - + // OpenEXR uses linear gamma gamma().set_gamma(1.0); } @@ -103,21 +106,17 @@ bool exr_trgt::start_frame(synfig::ProgressCallback *cb) { int w=desc.get_w(),h=desc.get_h(); - + String frame_name; - + if(exr_file) delete exr_file; if(multi_image) { - String - newfilename(filename), - ext(find(filename.begin(),filename.end(),'.'),filename.end()); - newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end()); - - newfilename+=etl::strprintf("%04d",imagecount)+ext; - frame_name=newfilename; - if(cb)cb->task(newfilename); + frame_name = (filename_sans_extension(filename) + + etl::strprintf(".%04d",imagecount) + + filename_extension(filename)); + if(cb)cb->task(frame_name); } else { @@ -132,7 +131,7 @@ exr_trgt::start_frame(synfig::ProgressCallback *cb) //if(buffer) delete [] buffer; //buffer=new Imf::Rgba[w]; out_surface.set_wh(w,h); - + return true; } @@ -146,9 +145,9 @@ exr_trgt::end_frame() delete exr_file; } - + exr_file=0; - + imagecount++; }