[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kwin/fredrik/vulkan] plugins/scenes/opengl: opengl: Use ScreenPaintData::cullMode()
From:       Fredrik_Höglund <null () kde ! org>
Date:       2018-02-16 17:01:50
Message-ID: E1emjOQ-0004Yx-EU () code ! kde ! org
[Download RAW message or body]

Git commit aa92f360ae7fe1fac824046a24cddc9e211d40cf by Fredrik Höglund.
Committed on 16/02/2018 at 16:58.
Pushed by fredrik into branch 'fredrik/vulkan'.

opengl: Use ScreenPaintData::cullMode()

M  +17   -0    plugins/scenes/opengl/scene_opengl.cpp

https://commits.kde.org/kwin/aa92f360ae7fe1fac824046a24cddc9e211d40cf

diff --git a/plugins/scenes/opengl/scene_opengl.cpp b/plugins/scenes/opengl/scene_opengl.cpp
index 22817f644..1261b2370 100644
--- a/plugins/scenes/opengl/scene_opengl.cpp
+++ b/plugins/scenes/opengl/scene_opengl.cpp
@@ -1059,7 +1059,24 @@ void SceneOpenGL2::paintGenericScreen(int mask, ScreenPaintData data)
 
     m_screenProjectionMatrix = m_projectionMatrix * screenMatrix;
 
+    bool resetCullMode = false;
+
+    if (mask & PAINT_SCREEN_WITH_FACE_CULLING) {
+        if (data.cullMode()) {
+            const GLenum modes[] = { GL_NONE, GL_FRONT, GL_BACK, GL_FRONT_AND_BACK };
+            glCullFace(modes[int(data.cullMode())]);
+            glEnable(GL_CULL_FACE);
+            resetCullMode = true;
+        } else {
+            glDisable(GL_CULL_FACE);
+        }
+    }
+
     Scene::paintGenericScreen(mask, data);
+
+    if (resetCullMode) {
+        glDisable(GL_CULL_FACE);
+    }
 }
 
 void SceneOpenGL2::doPaintBackground(const QVector< float >& vertices)

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic