X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcolorcurve.cpp;h=1c76e1eb885ddbc284d13d7510d588e25a66e620;hb=fcaae0500d5c6fa842babe37450c435e4178547a;hp=6351ea20bb252c7402bf129e3115dcb6c7f24e5e;hpb=aa987216b92584aafc0ecbc3d578606018078f91;p=libs%2Fgl.git diff --git a/source/colorcurve.cpp b/source/colorcurve.cpp index 6351ea20..1c76e1eb 100644 --- a/source/colorcurve.cpp +++ b/source/colorcurve.cpp @@ -1,4 +1,5 @@ #include +#include "color.h" #include "colorcurve.h" #include "mesh.h" #include "shader.h" @@ -44,6 +45,7 @@ ColorCurve::ColorCurve(): { shprog.attach_shader(get_fullscreen_vertex_shader()); shprog.attach_shader_owned(new FragmentShader(fragment_src)); + shprog.bind_attribute(get_component_type(VERTEX2), "vertex"); shprog.link(); shdata.uniform("texture", 0); @@ -88,7 +90,7 @@ void ColorCurve::set_srgb() unsigned char curve_data[256]; curve_data[0] = 0; for(unsigned i=1; i<256; ++i) - curve_data[i] = (1.055*pow(i/255.0f, 1/2.4f)-0.055)*255+0.5; + curve_data[i] = to_srgb(i/255.0f)*255+0.5f; curve.image(0, LUMINANCE, UNSIGNED_BYTE, curve_data); } @@ -104,6 +106,7 @@ void ColorCurve::render(const Texture2D &color_buf, const Texture2D &) { Bind _bind_shader(shprog); shdata.apply(); + Bind _bind_mesh(quad); Bind _bind_tex(color_buf); Bind _bind_curve(curve, 1); quad.draw();