summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qopenglwidget.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2014-04-11 23:01:43 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-11 23:01:43 +0200
commit4c1e15548a288455a5a62dcefacd7c9a44736346 (patch)
tree0273cad922b92b008870808fb67403131383313e /src/widgets/kernel/qopenglwidget.cpp
parentc501eb8bece9c9de37f7f0839a8396fbfa697fec (diff)
parent98d3e40fb7c88b670a93e73dace2d0f05a5f903c (diff)
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/widgets/kernel/qopenglwidget.cpp')
-rw-r--r--src/widgets/kernel/qopenglwidget.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp
index 66aacadb28..10be5aef16 100644
--- a/src/widgets/kernel/qopenglwidget.cpp
+++ b/src/widgets/kernel/qopenglwidget.cpp
@@ -60,7 +60,6 @@ public:
QOpenGLWidgetPrivate()
: fbo(0), uninitialized(true)
{
- setRenderToTexture();
}
GLuint textureId() const { return fbo ? fbo->texture() : 0; }
@@ -91,6 +90,8 @@ void QOpenGLWidgetPrivate::initialize()
QOpenGLWidget::QOpenGLWidget(QWidget *parent, Qt::WindowFlags f)
: QWidget(*(new QOpenGLWidgetPrivate), parent, f)
{
+ Q_D(QOpenGLWidget);
+ d->setRenderToTexture();
}
QOpenGLWidget::~QOpenGLWidget()
@@ -146,6 +147,9 @@ void QOpenGLWidget::paintGL()
void QOpenGLWidget::updateGL()
{
Q_D(QOpenGLWidget);
+ if (d->uninitialized)
+ return;
+
makeCurrent();
paintGL();
d->context.functions()->glFlush();
@@ -163,7 +167,7 @@ void QOpenGLWidget::resizeEvent(QResizeEvent *)
d->context.makeCurrent(d->surface());
delete d->fbo; // recreate when resized
- d->fbo = new QOpenGLFramebufferObject(size() * devicePixelRatio());
+ d->fbo = new QOpenGLFramebufferObject(size() * devicePixelRatio(), QOpenGLFramebufferObject::CombinedDepthStencil);
d->fbo->bind();
QOpenGLFunctions *funcs = d->context.functions();
funcs->glBindTexture(GL_TEXTURE_2D, d->fbo->texture());