diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2009-07-01 12:40:51 (GMT) |
---|---|---|
committer | Samuel Rødal <sroedal@trolltech.com> | 2009-07-01 12:44:25 (GMT) |
commit | 66a281ab76303074cd9cbb6cd22dcc5f3dbe8454 (patch) | |
tree | 1f42218c513a327d85ff408297879297c78a23f1 | |
parent | 7bf505a54379388b292df528114d6e2dd8d9d4d4 (diff) | |
download | Qt-66a281ab76303074cd9cbb6cd22dcc5f3dbe8454.zip Qt-66a281ab76303074cd9cbb6cd22dcc5f3dbe8454.tar.gz Qt-66a281ab76303074cd9cbb6cd22dcc5f3dbe8454.tar.bz2 |
Made QPainter / OpenGL intermixing in hellogl_es2 work properly again.
Need to call syncState() to let the paint engine set depth clipping
state parameters back to their OpenGL defaults.
Reviewed-by: Trond
-rw-r--r-- | examples/opengl/hellogl_es2/glwidget.cpp | 3 | ||||
-rw-r--r-- | src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/examples/opengl/hellogl_es2/glwidget.cpp b/examples/opengl/hellogl_es2/glwidget.cpp index 6b08662..bb07b22 100644 --- a/examples/opengl/hellogl_es2/glwidget.cpp +++ b/examples/opengl/hellogl_es2/glwidget.cpp @@ -41,6 +41,7 @@ #include "glwidget.h" #include <QPainter> +#include <QPaintEngine> #include <math.h> #include "bubble.h" @@ -265,6 +266,8 @@ void GLWidget::paintGL() QPainter painter; painter.begin(this); + painter.paintEngine()->syncState(); + glClearColor(0.1f, 0.1f, 0.2f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_TEXTURE_2D); diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index edc7c44..f261ca2 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -676,6 +676,11 @@ void QGL2PaintEngineEx::sync() glDisable(GL_BLEND); glActiveTexture(GL_TEXTURE0); + glDisable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + glDepthMask(true); + glClearDepth(1); + d->needsSync = true; } |