diff options
-rw-r--r-- | src/gui/painting/qblittable.cpp | 6 | ||||
-rw-r--r-- | src/gui/painting/qblittable_p.h | 2 | ||||
-rw-r--r-- | src/gui/painting/qpaintengine_blitter.cpp | 13 |
3 files changed, 11 insertions, 10 deletions
diff --git a/src/gui/painting/qblittable.cpp b/src/gui/painting/qblittable.cpp index 11058582ef..fe51f7adb0 100644 --- a/src/gui/painting/qblittable.cpp +++ b/src/gui/painting/qblittable.cpp @@ -100,6 +100,12 @@ void QBlittable::unlock() } } +bool QBlittable::isLocked() const +{ + Q_D(const QBlittable); + return d->locked; +} + QT_END_NAMESPACE #endif //QT_NO_BLITTABLE diff --git a/src/gui/painting/qblittable_p.h b/src/gui/painting/qblittable_p.h index a843733a56..248183d2e6 100644 --- a/src/gui/painting/qblittable_p.h +++ b/src/gui/painting/qblittable_p.h @@ -80,6 +80,8 @@ public: QImage *lock(); void unlock(); + bool isLocked() const; + protected: virtual QImage *doLock() = 0; virtual void doUnlock() = 0; diff --git a/src/gui/painting/qpaintengine_blitter.cpp b/src/gui/painting/qpaintengine_blitter.cpp index c37355bd64..a798efb63d 100644 --- a/src/gui/painting/qpaintengine_blitter.cpp +++ b/src/gui/painting/qpaintengine_blitter.cpp @@ -188,7 +188,6 @@ public: : QPaintEngineExPrivate() , pmData(p) , caps(pmData->blittable()->capabilities()) - , isBlitterLocked(false) , hasXForm(false) { @@ -196,17 +195,12 @@ public: } inline void lock() { - if (!isBlitterLocked) { - raster->d_func()->rasterBuffer->prepare(pmData->blittable()->lock()); - isBlitterLocked = true; - } + if (!pmData->blittable()->isLocked()) + raster->d_func()->rasterBuffer->prepare(pmData->buffer()); } inline void unlock() { - if (isBlitterLocked) { - pmData->blittable()->unlock(); - isBlitterLocked = false; - } + pmData->blittable()->unlock(); } void fillRect(const QRectF &rect, const QColor &color) { @@ -275,7 +269,6 @@ public: QBlittablePlatformPixmap *pmData; CapabilitiesToStateMask caps; - bool isBlitterLocked; uint hasXForm; }; |