X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=main.cpp;h=1386a0f1def99395e9296d0ef81fa1cac29329bd;hp=5c01cdbd003fd711dbb2418b536f150caf22cb9d;hb=a04ce272078182de6bb49e5ea9834713f3d72cae;hpb=49941686f9e5c86f56b5f3aba7a628d72bc14533 diff --git a/main.cpp b/main.cpp index 5c01cdb..1386a0f 100644 --- a/main.cpp +++ b/main.cpp @@ -3,7 +3,6 @@ #define WIDTH 1280 #define HEIGHT 720 -#define BUFFER_OFFSET(i) ((char *)NULL + (i)) #include #include @@ -26,7 +25,6 @@ #include "effect_chain.h" #include "util.h" #include "widgets.h" -#include "texture_enum.h" unsigned char result[WIDTH * HEIGHT * 4]; @@ -37,7 +35,7 @@ float saturation = 1.0f; float radius = 0.3f; float inner_radius = 0.3f; - + void update_hsv(Effect *lift_gamma_gain_effect, Effect *saturation_effect) { RGBTriplet lift(0.0f, 0.0f, 0.0f); @@ -158,11 +156,6 @@ int main(int argc, char **argv) glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1); - glBindTexture(GL_TEXTURE_2D, SOURCE_IMAGE); - check_error(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - check_error(); - unsigned img_w, img_h; unsigned char *src_img = load_image("blg_wheels_woman_1.jpg", &img_w, &img_h); @@ -177,6 +170,7 @@ int main(int argc, char **argv) Effect *lift_gamma_gain_effect = chain.add_effect(EFFECT_LIFT_GAMMA_GAIN); Effect *saturation_effect = chain.add_effect(EFFECT_SATURATION); Effect *vignette_effect = chain.add_effect(EFFECT_VIGNETTE); + //chain.add_effect(EFFECT_MIRROR); chain.add_output(inout_format); chain.finalize(); @@ -259,10 +253,15 @@ int main(int argc, char **argv) update_hsv(lift_gamma_gain_effect, saturation_effect); vignette_effect->set_float("radius", radius); vignette_effect->set_float("inner_radius", inner_radius); + //vignette_effect->set_vec2("center", (float[]){ 0.7f, 0.5f }); chain.render_to_screen(src_img); + glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 1); + check_error(); glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, BUFFER_OFFSET(0)); check_error(); + glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); + check_error(); draw_hsv_wheel(0.0f, lift_rad, lift_theta, lift_v); draw_hsv_wheel(0.2f, gamma_rad, gamma_theta, gamma_v); @@ -274,6 +273,8 @@ int main(int argc, char **argv) SDL_GL_SwapBuffers(); check_error(); + glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 1); + check_error(); unsigned char *screenbuf = (unsigned char *)glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY); check_error(); if (screenshot) { @@ -285,6 +286,8 @@ int main(int argc, char **argv) } glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB); check_error(); + glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); + check_error(); #if 1 #if _POSIX_C_SOURCE >= 199309L