diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2012-01-23 10:42:54 (GMT) |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-27 17:49:30 (GMT) |
commit | 6907626962f845ae5d713f4e8f6bfefdd15724f6 (patch) | |
tree | 7faf510d429615e3f1acdd8f78d7f0eac479054a /src/gui/image | |
parent | d3991bfeb1c2b14e85f8080323065be0babd3e11 (diff) | |
download | Qt-6907626962f845ae5d713f4e8f6bfefdd15724f6.zip Qt-6907626962f845ae5d713f4e8f6bfefdd15724f6.tar.gz Qt-6907626962f845ae5d713f4e8f6bfefdd15724f6.tar.bz2 |
blitter: Base QBlitterPaintEngine on QRasterPaintEngine
The original intention was to identify a clipping bug, it turns out
that during a ::begin() (and systemChanged) we should forward the
QPaintEnginePrivate state to our proxy engine.
Instead of using the proxy-pattern subclass rasterengine and
specialize the paths we are able to accelerate using the blitter
interface. This will avoid similiar problems in the future. I have
no performance measurement to show which of the two approaches is
faster/slower.
Change-Id: I5ee0de566f4568103f741af697bdabbb097927e4
Based-On: I39bff11b32b1fe20284c7e8df60050de5991bb6e
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/gui/image')
-rw-r--r-- | src/gui/image/qpixmap_blitter_p.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gui/image/qpixmap_blitter_p.h b/src/gui/image/qpixmap_blitter_p.h index b3cdd02..0ee8703 100644 --- a/src/gui/image/qpixmap_blitter_p.h +++ b/src/gui/image/qpixmap_blitter_p.h @@ -72,8 +72,11 @@ public: void markRasterOverlay(const QRectF &); void markRasterOverlay(const QPointF &, const QTextItem &); void markRasterOverlay(const QVectorPath &); + void markRasterOverlay(const QPainterPath &); void markRasterOverlay(const QRect *rects, int rectCount); void markRasterOverlay(const QRectF *rects, int rectCount); + void markRasterOverlay(const QPointF *points, int pointCount); + void markRasterOverlay(const QPoint *points, int pointCount); void unmarkRasterOverlay(const QRectF &); #ifdef QT_BLITTER_RASTEROVERLAY @@ -153,6 +156,35 @@ inline void QBlittablePixmapData::markRasterOverlay(const QRectF *rects, int rec #endif } +inline void QBlittablePixmapData::markRasterOverlay(const QPointF *points, int pointCount) +{ +#ifdef QT_BLITTER_RASTEROVERLAY +#error "not ported yet" +#else + Q_UNUSED(points); + Q_UNUSED(pointCount); +#endif +} + +inline void QBlittablePixmapData::markRasterOverlay(const QPoint *points, int pointCount) +{ +#ifdef QT_BLITTER_RASTEROVERLAY +#error "not ported yet" +#else + Q_UNUSED(points); + Q_UNUSED(pointCount); +#endif +} + +inline void QBlittablePixmapData::markRasterOverlay(const QPainterPath& path) +{ +#ifdef QT_BLITTER_RASTEROVERLAY +#error "not ported yet" +#else + Q_UNUSED(path); +#endif +} + inline void QBlittablePixmapData::unmarkRasterOverlay(const QRectF &rect) { #ifdef QT_BLITTER_RASTEROVERLAY |