#include <SDL/SDL_opengl.h>
#include <SDL/SDL_image.h>
+#include "init.h"
#include "effect.h"
#include "effect_chain.h"
#include "util.h"
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_SetVideoMode(WIDTH, HEIGHT, 0, SDL_OPENGL);
SDL_WM_SetCaption("OpenGL window", NULL);
-
- // geez
- glPixelStorei(GL_PACK_ALIGNMENT, 1);
+ init_movit();
+ printf("GPU texture subpixel precision: about %.1f bits\n",
+ log2(1.0f / movit_texel_subpixel_precision));
+
unsigned img_w, img_h;
- unsigned char *src_img = load_image("blg_wheels_woman_1.jpg", &img_w, &img_h);
+ unsigned char *src_img = load_image(argc > 1 ? argv[1] : "blg_wheels_woman_1.jpg", &img_w, &img_h);
EffectChain chain(WIDTH, HEIGHT);
+ glViewport(0, 0, WIDTH, HEIGHT);
ImageFormat inout_format;
inout_format.color_space = COLORSPACE_sRGB;
//sandbox_effect->set_float("parm", 42.0f);
//chain.add_effect(new MirrorEffect());
chain.add_output(inout_format);
+ chain.set_dither_bits(8);
chain.finalize();
// generate a PBO to hold the data we read back with glReadPixels()
//vignette_effect->set_float("inner_radius", inner_radius);
//vignette_effect->set_vec2("center", (float[]){ 0.7f, 0.5f });
- diffusion_effect->set_float("radius", blur_radius);
- diffusion_effect->set_float("blurred_mix_amount", blurred_mix_amount);
+ CHECK(diffusion_effect->set_float("radius", blur_radius));
+ CHECK(diffusion_effect->set_float("blurred_mix_amount", blurred_mix_amount));
input->set_pixel_data(src_img);
chain.render_to_screen();