You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
13 years ago
|
//
|
||
|
// output.hpp
|
||
|
// AwesomeAttract0r
|
||
|
//
|
||
|
// Created by Joshua Moerman on 1/8/12.
|
||
|
// Copyright (c) 2012 Vadovas. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#ifndef AwesomeAttract0r_output_hpp
|
||
|
#define AwesomeAttract0r_output_hpp
|
||
|
|
||
|
#include "Logger.hpp"
|
||
|
#include "stf.hpp"
|
||
|
#include "Random.hpp"
|
||
|
#include "Image.hpp"
|
||
|
#include "Tonemapper.hpp"
|
||
|
|
||
|
namespace details {
|
||
|
template <typename C, typename TM>
|
||
|
void output(C const & canvas, TM & tonemapper, std::string const & image_path, stfu::node & stf_output){
|
||
|
logger.start("Analysing");
|
||
|
tonemapper.analyse(canvas);
|
||
|
logger.stop();
|
||
|
|
||
|
ImageFormats::png::png_stream image(canvas.template size<0>(), canvas.template size<1>(), image_path + ".png");
|
||
|
logger.start("Exporting");
|
||
|
tonemapper.process(canvas, image);
|
||
|
logger.stop();
|
||
|
|
||
|
stf_output.addChild("tonemapper") = stfu::to_stf(tonemapper);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template <typename C>
|
||
|
void output(C const & canvas, stfu::node const & stf_input, std::string const & filename, stfu::node & stf_output){
|
||
|
if(stf_input.getValue("class") == "colorizer") {
|
||
|
Tonemappers::Colorizer tonemapper(canvas.layers(), stf_input);
|
||
|
details::output(canvas, tonemapper, filename, stf_output);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template <typename C>
|
||
|
void output(C const & canvas, Random::parameters, std::string const & filename, stfu::node & stf_output) {
|
||
|
Tonemappers::Colorizer tonemapper(canvas.layers(), Random::parameters());
|
||
|
details::output(canvas, tonemapper, filename, stf_output);
|
||
|
}
|
||
|
|
||
|
#endif
|