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=3e9db95cd10d9311bfd529306f0a2d8c5fe8c352;hpb=16b3beced25134bef064705568ecb893a6be4e79;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 3e9db95..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,18 +1,23 @@ -/*! ======================================================================== -** Sinfg -** 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 ** -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** $Id$ ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** 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 =========================================================== ** @@ -20,7 +25,7 @@ /* === H E A D E R S ======================================================= */ -#define SINFG_TARGET +#define SYNFIG_TARGET #ifdef USING_PCH # include "pch.h" @@ -30,7 +35,6 @@ #endif #include "trgt_openexr.h" -#include #include #include #include @@ -39,17 +43,17 @@ /* === M A C R O S ========================================================= */ -using namespace sinfg; +using namespace synfig; using namespace std; using namespace etl; /* === G L O B A L S ======================================================= */ -SINFG_TARGET_INIT(exr_trgt); -SINFG_TARGET_SET_NAME(exr_trgt,"exr_trgt"); -SINFG_TARGET_SET_EXT(exr_trgt,"exr"); -SINFG_TARGET_SET_VERSION(exr_trgt,"1.0.4"); -SINFG_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_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$"); /* === M E T H O D S ======================================================= */ @@ -69,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); } @@ -99,24 +103,20 @@ exr_trgt::set_rend_desc(RendDesc *given_desc) } bool -exr_trgt::start_frame(sinfg::ProgressCallback *cb) +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 { @@ -131,7 +131,7 @@ exr_trgt::start_frame(sinfg::ProgressCallback *cb) //if(buffer) delete [] buffer; //buffer=new Imf::Rgba[w]; out_surface.set_wh(w,h); - + return true; } @@ -145,9 +145,9 @@ exr_trgt::end_frame() delete exr_file; } - + exr_file=0; - + imagecount++; }