]> git.tdb.fi Git - libs/gl.git/blobdiff - source/colorcurve.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / colorcurve.cpp
diff --git a/source/colorcurve.cpp b/source/colorcurve.cpp
deleted file mode 100644 (file)
index f11b83a..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#include <cmath>
-#include "color.h"
-#include "colorcurve.h"
-#include "mesh.h"
-#include "renderer.h"
-#include "shader.h"
-#include "texture2d.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-ColorCurve::ColorCurve():
-       shprog("colorcurve.glsl"),
-       quad(get_fullscreen_quad())
-{
-       shdata.uniform("source", 0);
-       shdata.uniform("curve", 1);
-
-       curve.storage(LUMINANCE, 256, 1);
-       curve.set_min_filter(LINEAR);
-       curve.set_wrap(CLAMP_TO_EDGE);
-       texturing.attach(1, curve);
-
-       set_exposure_adjust(0.0f);
-       set_brightness_response(0.4f);
-       set_linear();
-}
-
-void ColorCurve::set_exposure_adjust(float e)
-{
-       shdata.uniform("exposure", pow(2.0f, e));
-}
-
-void ColorCurve::set_brightness_response(float b)
-{
-       if(b<=0 || b>1)
-               throw invalid_argument("ColorCurve::set_brightness_response");
-       float t = (b<1 ? pow(b, 1/(1-b)) : 0.0f);
-       shdata.uniform("brightness_response", b, t, pow(t, b));
-}
-
-void ColorCurve::set_gamma(float g)
-{
-       if(g<0.1 || g>10)
-               throw invalid_argument("ColorCurve::set_gamma");
-
-       unsigned char curve_data[256];
-       for(unsigned i=0; i<256; ++i)
-               curve_data[i] = pow(i/255.0f, 1/g)*255+0.5f;
-       curve.image(0, LUMINANCE, UNSIGNED_BYTE, curve_data);
-}
-
-void ColorCurve::set_srgb()
-{
-       unsigned char curve_data[256];
-       curve_data[0] = 0;
-       for(unsigned i=1; i<256; ++i)
-               curve_data[i] = to_srgb(i/255.0f)*255+0.5f;
-       curve.image(0, LUMINANCE, UNSIGNED_BYTE, curve_data);
-}
-
-void ColorCurve::set_linear()
-{
-       unsigned char curve_data[256];
-       for(unsigned i=0; i<256; ++i)
-               curve_data[i] = i;
-       curve.image(0, LUMINANCE, UNSIGNED_BYTE, curve_data);
-}
-
-void ColorCurve::render(Renderer &renderer, const Texture2D &color_buf, const Texture2D &)
-{
-       texturing.attach(0, color_buf);
-
-       Renderer::Push push(renderer);
-       renderer.set_shader_program(&shprog, &shdata);
-       renderer.set_texturing(&texturing);
-       quad.draw(renderer);
-}
-
-
-ColorCurve::Template::Template():
-       exposure_adjust(0.0f),
-       brightness_response(0.4f),
-       gamma(1.0f),
-       srgb(false)
-{ }
-
-ColorCurve *ColorCurve::Template::create(unsigned, unsigned) const
-{
-       RefPtr<ColorCurve> colorcurve = new ColorCurve;
-       colorcurve->set_exposure_adjust(exposure_adjust);
-       colorcurve->set_brightness_response(brightness_response);
-       if(srgb)
-               colorcurve->set_srgb();
-       else
-               colorcurve->set_gamma(gamma);
-       return colorcurve.release();
-}
-
-
-ColorCurve::Template::Loader::Loader(Template &t):
-       DataFile::DerivedObjectLoader<Template, PostProcessor::Template::Loader>(t)
-{
-       add("brightness_response", &Template::brightness_response);
-       add("exposure_adjust", &Template::exposure_adjust);
-       add("gamma", &Loader::gamma);
-       add("srgb", &Loader::srgb);
-}
-
-void ColorCurve::Template::Loader::gamma(float g)
-{
-       obj.gamma = g;
-       obj.srgb = false;
-}
-
-void ColorCurve::Template::Loader::srgb()
-{
-       obj.srgb = true;
-}
-
-} // namespace GL
-} // namespace Msp