diff options
author | Justin McPherson <justin.mcpherson@nokia.com> | 2012-03-02 16:28:16 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-06 06:34:36 +0100 |
commit | fd57a4059a69cdbefda880a62d949994314fa9ed (patch) | |
tree | 9a240fa88e2c018693a85e4046e2fff5f7a04d9a /src/quick/items/context2d/qquickcontext2dtexture.cpp | |
parent | eab48686b2ec6df8cd179c9472eda4e8c3505cef (diff) |
Continue refactor of Canvas rendering.
- Remove sync() - not necessary
- Queue buffer before flush
Change-Id: If7dea8e56a612d241c67a82eae265febc45059a8
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
Diffstat (limited to 'src/quick/items/context2d/qquickcontext2dtexture.cpp')
-rw-r--r-- | src/quick/items/context2d/qquickcontext2dtexture.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp index 7d9f65a3c6..60f58540f4 100644 --- a/src/quick/items/context2d/qquickcontext2dtexture.cpp +++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp @@ -195,13 +195,14 @@ void QQuickContext2DTexture::canvasChanged(const QSize& canvasSize, const QSize& void QQuickContext2DTexture::paintWithoutTiles() { - QLockedCommandBuffer ccb = m_context->buffer(); + QQuickContext2DCommandBuffer* ccb = m_context->nextBuffer(); - if (ccb->isEmpty()) + if (!ccb || ccb->isEmpty()) return; QPaintDevice* device = beginPainting(); if (!device) { + delete ccb; endPainting(); return; } @@ -218,6 +219,7 @@ void QQuickContext2DTexture::paintWithoutTiles() ccb->replay(&p, m_state); ccb->clear(); + delete ccb; endPainting(); @@ -269,7 +271,12 @@ void QQuickContext2DTexture::paint() if (beginPainting()) { QQuickContext2D::State oldState = m_state; - QLockedCommandBuffer ccb = m_context->buffer(); + QQuickContext2DCommandBuffer* ccb = m_context->nextBuffer(); + if (!ccb || ccb->isEmpty()) { + endPainting(); + delete ccb; + return; + } foreach (QQuickContext2DTile* tile, m_tiles) { bool dirtyTile = false, dirtyCanvas = false, smooth = false; @@ -296,6 +303,7 @@ void QQuickContext2DTexture::paint() compositeTile(tile); } ccb->clear(); + delete ccb; endPainting(); m_state = oldState; markDirtyTexture(); |