File 0001-Revert-windowthumbnail-Use-gamma-correct-scaling.patch of Package plasma-framework

From f7c1752ae1204f1ef9f5e917308ea1cf388dc2fe Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Tue, 1 May 2018 23:48:55 +0100
Subject: [PATCH 1/2] Revert "windowthumbnail: Use gamma correct scaling"

This reverts commit 42d3fde1eef6866640cee8671b07dc81fa2df28c.
---
 src/declarativeimports/core/windowthumbnail.cpp | 34 +++----------------------
 1 file changed, 4 insertions(+), 30 deletions(-)

diff --git a/src/declarativeimports/core/windowthumbnail.cpp b/src/declarativeimports/core/windowthumbnail.cpp
index 5f687b98e..906455d96 100644
--- a/src/declarativeimports/core/windowthumbnail.cpp
+++ b/src/declarativeimports/core/windowthumbnail.cpp
@@ -440,20 +440,13 @@ bool WindowThumbnail::windowToTextureGLX(WindowTextureNode *textureNode)
         static bool haveTextureStorage = !ctx->isOpenGLES() &&
                                           ctx->hasExtension(QByteArrayLiteral("GL_ARB_texture_storage"));
 
-        static bool sRGB = !ctx->isOpenGLES() &&
-                            ctx->hasExtension(QByteArrayLiteral("GL_ARB_framebuffer_sRGB")) &&
-                            ctx->hasExtension(QByteArrayLiteral("GL_EXT_texture_sRGB_decode"));
-
         // Save the GL state
-        GLuint prevReadFb = 0, prevDrawFb = 0, prevTex2D = 0, prevScissorTest = 0, prevFramebufferSrgb = 0;
+        GLuint prevReadFb = 0, prevDrawFb = 0, prevTex2D = 0, prevScissorTest = 0;
         funcs->glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, (GLint *) &prevReadFb);
         funcs->glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, (GLint *) &prevDrawFb);
         funcs->glGetIntegerv(GL_TEXTURE_BINDING_2D, (GLint *) &prevTex2D);
         funcs->glGetIntegerv(GL_SCISSOR_TEST, (GLint *) &prevScissorTest);
 
-        if (sRGB)
-            funcs->glGetIntegerv(GL_FRAMEBUFFER_SRGB, (GLint *) &prevFramebufferSrgb);
-
         if (m_glxPixmap == XCB_PIXMAP_NONE) {
             xcb_connection_t *c = QX11Info::connection();
             auto attrCookie = xcb_get_window_attributes_unchecked(c, m_winId);
@@ -488,9 +481,9 @@ bool WindowThumbnail::windowToTextureGLX(WindowTextureNode *textureNode)
             funcs->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, levels - 1);
 
             if (haveTextureStorage)
-                extraFuncs->glTexStorage2D(GL_TEXTURE_2D, levels, sRGB ? GL_SRGB8_ALPHA8 : GL_RGBA8, width, height);
+                extraFuncs->glTexStorage2D(GL_TEXTURE_2D, levels, GL_RGBA8, width, height);
             else
-                funcs->glTexImage2D(GL_TEXTURE_2D, 0, sRGB ? GL_SRGB8_ALPHA8 : GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
+                funcs->glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
             GLuint framebuffers[2];
             funcs->glGenFramebuffers(2, framebuffers);
@@ -514,10 +507,6 @@ bool WindowThumbnail::windowToTextureGLX(WindowTextureNode *textureNode)
         funcs->glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_texture, 0);
         funcs->glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_mipmaps, 0);
 
-        // Disable sRGB encoding so there is no conversion in the blit
-        if (sRGB && prevFramebufferSrgb)
-            glDisable(GL_FRAMEBUFFER_SRGB);
-
         if (prevScissorTest)
             glDisable(GL_SCISSOR_TEST);
 
@@ -525,25 +514,10 @@ bool WindowThumbnail::windowToTextureGLX(WindowTextureNode *textureNode)
                                       0, 0, size.width(), size.height(),
                                       GL_COLOR_BUFFER_BIT, GL_NEAREST);
 
-        funcs->glBindTexture(GL_TEXTURE_2D, m_mipmaps);
-
-        if (sRGB) {
-            // Enable sRGB encoding and decoding when generating the mipmaps
-            funcs->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SRGB_DECODE_EXT, GL_DECODE_EXT);
-            funcs->glEnable(GL_FRAMEBUFFER_SRGB);
-        }
-
         // Regenerate the miplevels
+        funcs->glBindTexture(GL_TEXTURE_2D, m_mipmaps);
         funcs->glGenerateMipmap(GL_TEXTURE_2D);
 
-        if (sRGB) {
-            // Disable sRGB decoding again, so the texture is rendered correctly in the QtQuick scene
-            funcs->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SRGB_DECODE_EXT, GL_SKIP_DECODE_EXT);
-
-            if (!prevFramebufferSrgb)
-                funcs->glDisable(GL_FRAMEBUFFER_SRGB);
-        }
-
         // Restore the GL state
         funcs->glBindFramebuffer(GL_READ_FRAMEBUFFER, prevReadFb);
         funcs->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, prevDrawFb);
-- 
2.16.2

openSUSE Build Service is sponsored by