summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qblittable.cpp6
-rw-r--r--src/gui/painting/qblittable_p.h2
-rw-r--r--src/gui/painting/qpaintengine_blitter.cpp13
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;
};