From 8c33b798237b95d37fe4d60ae36f0d8067504429 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 30 May 2018 15:51:32 +0200 Subject: Fix HDR format in QOpenGLFramebufferObject::toImage() If the fbo had samples > 0 set, it would use a temporary fbo with a default configuration losing the HDR precision. Change-Id: I7e9966165b3100f148c4ad24738f3ee71273f29a Reviewed-by: Laszlo Agocs --- tests/auto/other/lancelot/tst_lancelot.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/auto/other/lancelot/tst_lancelot.cpp b/tests/auto/other/lancelot/tst_lancelot.cpp index 79d0f7c6cf..15267d256e 100644 --- a/tests/auto/other/lancelot/tst_lancelot.cpp +++ b/tests/auto/other/lancelot/tst_lancelot.cpp @@ -39,6 +39,10 @@ #include +#ifndef GL_RGB10 +#define GL_RGB10 0x8052 +#endif + class tst_Lancelot : public QObject { Q_OBJECT @@ -85,6 +89,8 @@ private slots: #ifndef QT_NO_OPENGL void testOpenGL_data(); void testOpenGL(); + void testOpenGLBGR30_data(); + void testOpenGLBGR30(); void testCoreOpenGL_data(); void testCoreOpenGL(); private: @@ -279,6 +285,16 @@ void tst_Lancelot::testOpenGL() runTestSuite(OpenGL, QImage::Format_RGB32); } +void tst_Lancelot::testOpenGLBGR30_data() +{ + tst_Lancelot::testOpenGL_data(); +} + +void tst_Lancelot::testOpenGLBGR30() +{ + runTestSuite(OpenGL, QImage::Format_BGR30); +} + void tst_Lancelot::testCoreOpenGL_data() { if (!checkSystemCoreGLSupport()) @@ -329,6 +345,8 @@ void tst_Lancelot::runTestSuite(GraphicsEngine engine, QImage::Format format, co QOpenGLFramebufferObjectFormat fmt; fmt.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil); fmt.setSamples(4); + if (format == QImage::Format_BGR30) + fmt.setInternalTextureFormat(GL_RGB10); QOpenGLContext ctx; ctx.setFormat(contextFormat); QVERIFY(ctx.create()); -- cgit v1.2.3