]> git.tdb.fi Git - libs/gl.git/blobdiff - source/colorcurve.cpp
Fix Texture2D::get_data_size to use get_pixel_size
[libs/gl.git] / source / colorcurve.cpp
index 6351ea20bb252c7402bf129e3115dcb6c7f24e5e..1c76e1eb885ddbc284d13d7510d588e25a66e620 100644 (file)
@@ -1,4 +1,5 @@
 #include <cmath>
+#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();