[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