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/qquickcontext2d_p.h | |
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/qquickcontext2d_p.h')
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d_p.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/quick/items/context2d/qquickcontext2d_p.h b/src/quick/items/context2d/qquickcontext2d_p.h index 239a244739..3230881134 100644 --- a/src/quick/items/context2d/qquickcontext2d_p.h +++ b/src/quick/items/context2d/qquickcontext2d_p.h @@ -51,6 +51,7 @@ #include <QtGui/qpainterpath.h> #include <QtCore/qstring.h> #include <QtCore/qstack.h> +#include <QtCore/qqueue.h> #include <private/qv8engine_p.h> @@ -70,14 +71,6 @@ class QQuickContext2DTexture; class QQuickPixmap; class QSGTexture; -class QLockedCommandBuffer { -public: - QLockedCommandBuffer(QQuickContext2DCommandBuffer *b); - ~QLockedCommandBuffer(); - QQuickContext2DCommandBuffer* operator->() const; -private: - QQuickContext2DCommandBuffer *m_buffer; -}; class Q_QUICK_EXPORT QQuickContext2D : public QQuickCanvasContext { @@ -179,7 +172,9 @@ public: void setV8Engine(QV8Engine *eng); QQuickCanvasItem* canvas() const { return m_canvas; } - QLockedCommandBuffer buffer() const { return m_buffer; } + QQuickContext2DCommandBuffer* buffer() const { return m_buffer; } + QQuickContext2DCommandBuffer* nextBuffer(); + bool bufferValid() const { return m_buffer != 0; } void popState(); void pushState(); @@ -221,6 +216,8 @@ public: QQuickContext2DTexture *m_texture; QQuickCanvasItem::RenderTarget m_renderTarget; QQuickCanvasItem::RenderStrategy m_renderStrategy; + QQueue<QQuickContext2DCommandBuffer*> m_bufferQueue; + QMutex m_bufferMutex; }; |