From 624796b894b3fa04a08b70f4e69ab0fc322da19c Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 5 Nov 2012 23:56:39 +0100 Subject: [PATCH] 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. --- test_util.cpp | 5 +++-- test_util.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) 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; } -- 2.39.2