From: Steinar H. Gunderson Date: Mon, 5 Nov 2012 22:56:39 +0000 (+0100) Subject: Allow the EffectChainTester framebuffer to be in something else than float. This... X-Git-Tag: 1.0~205 X-Git-Url: https://git.sesse.net/?p=movit;a=commitdiff_plain;h=624796b894b3fa04a08b70f4e69ab0fc322da19c;hp=85526f893719c3267cbfe653cf0095fc1288f49d Allow the EffectChainTester framebuffer to be in something else than float. This is useful since Mesa's glReadPixels() does not round, but the Intel hardware does. --- diff --git a/test_util.cpp b/test_util.cpp index cc02801..9053c5e 100644 --- a/test_util.cpp +++ b/test_util.cpp @@ -25,7 +25,8 @@ void vertical_flip(T *data, unsigned width, unsigned height) } // namespace EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned height, - MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve) + MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve, + GLenum framebuffer_format) : chain(width, height), width(width), height(height), finalized(false) { init_movit(); @@ -38,7 +39,7 @@ EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned check_error(); glBindTexture(GL_TEXTURE_2D, texnum); check_error(); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexImage2D(GL_TEXTURE_2D, 0, framebuffer_format, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); check_error(); glGenFramebuffers(1, &fbo); diff --git a/test_util.h b/test_util.h index 67e975d..407824d 100644 --- a/test_util.h +++ b/test_util.h @@ -8,7 +8,8 @@ public: EffectChainTester(const float *data, unsigned width, unsigned height, MovitPixelFormat pixel_format = FORMAT_GRAYSCALE, Colorspace color_space = COLORSPACE_sRGB, - GammaCurve gamma_curve = GAMMA_LINEAR); + GammaCurve gamma_curve = GAMMA_LINEAR, + GLenum framebuffer_format = GL_RGBA16F_ARB); ~EffectChainTester(); EffectChain *get_chain() { return &chain; }