X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Ftarget.cpp;h=dbeb37eed2f1ededa62b39f76e710e0e9eac44ee;hb=eb5f6e771ae901ac25b9a00601cb6ebdbf0f7710;hp=6a73822cb42ab776350170cb8d87be0157df9ed7;hpb=adfc80c126f482d7ea2bac38001a2c4a7c7df88c;p=synfig.git diff --git a/synfig-core/src/synfig/target.cpp b/synfig-core/src/synfig/target.cpp index 6a73822..dbeb37e 100644 --- a/synfig-core/src/synfig/target.cpp +++ b/synfig-core/src/synfig/target.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2010 Diego Barrios Romero ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -22,8 +23,6 @@ /* === H E A D E R S ======================================================= */ -#define SYNFIG_NO_ANGLE - #ifdef HAVE_CONFIG_H # include #endif @@ -33,6 +32,7 @@ #include "canvas.h" #include "target_null.h" #include "target_null_tile.h" +#include "targetparam.h" using namespace synfig; using namespace etl; @@ -50,13 +50,20 @@ Target::subsys_init() { book_=new synfig::Target::Book(); ext_book_=new synfig::Target::ExtBook(); - +//! \todo Do not hard core gamma to 2.2 default_gamma_=new synfig::Gamma(1.0/2.2); - //default_gamma_->set_black_level(0.05); // Default to 5% black level. - book()["null"]=std::pair(Target_Null::create,"null"); + // At least one target must be available. + book()["null"].factory = + reinterpret_cast(&Target_Null::create); + book()["null"].filename = "null"; + book()["null"].target_param = TargetParam(); ext_book()["null"]="null"; - book()["null-tile"]=std::pair(Target_Null_Tile::create,"null-tile"); + + book()["null-tile"].factory = + reinterpret_cast(&Target_Null_Tile::create); + book()["null-tile"].filename = "null-tile"; + book()["null-tile"].target_param = TargetParam(); ext_book()["null-tile"]="null-tile"; return true; @@ -104,10 +111,11 @@ synfig::Target::set_canvas(etl::handle c) Target::Handle -Target::create(const String &name, const String &filename) +Target::create(const String &name, const String &filename, + synfig::TargetParam params) { if(!book().count(name)) return handle(); - return Target::Handle(book()[name].first(filename.c_str())); + return Target::Handle(book()[name].factory(filename.c_str(), params)); }