Fix resizing of Canvas item that use FBO as renderTargets.
authorCharles Yin <yinyunqiao@gmail.com>
Fri, 1 Jun 2012 23:59:49 +0000 (09:59 +1000)
committerQt by Nokia <qt-info@nokia.com>
Sun, 3 Jun 2012 23:32:45 +0000 (01:32 +0200)
Change-Id: I2a158e7838f637a662700290f9f4fd28ca726d1e
Task-number: QTBUG-25992
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
src/quick/items/context2d/qquickcontext2dtexture.cpp

index 52f3161..7778a64 100644 (file)
@@ -562,12 +562,16 @@ QPaintDevice* QQuickContext2DFBOTexture::beginPainting()
     if (m_canvasWindow.size().isEmpty() && !m_threadRendering) {
         delete m_fbo;
         delete m_multisampledFbo;
+        delete m_paint_device;
         m_fbo = 0;
         m_multisampledFbo = 0;
+        m_paint_device = 0;
         return 0;
     } else if (!m_fbo || m_canvasWindowChanged) {
         delete m_fbo;
         delete m_multisampledFbo;
+        delete m_paint_device;
+        m_paint_device = 0;
 
         m_fboSize = npotAdjustedSize(m_canvasWindow.size());
         m_canvasWindowChanged = false;
@@ -601,6 +605,7 @@ QPaintDevice* QQuickContext2DFBOTexture::beginPainting()
     if (!m_paint_device) {
         QOpenGLPaintDevice *gl_device = new QOpenGLPaintDevice(m_fbo->size());
         gl_device->setPaintFlipped(true);
+        gl_device->setSize(m_fbo->size());
         m_paint_device = gl_device;
     }