From 439b67bd412d79dc4be01d97d143a053e8ab0016 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 20 Mar 2020 20:14:49 +0000 Subject: [PATCH] optimize QRasterPaintEnginePrivate::isUnclipped() methods Signed-off-by: Ivailo Monev --- src/gui/painting/qpaintengine_raster.cpp | 25 ++++++++++--------------- src/gui/painting/qpaintengine_raster_p.h | 4 ++-- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index f67cf2870..35be6cdb5 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -2361,8 +2361,7 @@ bool QRasterPaintEnginePrivate::isUnclipped_normalized(const QRect &r) const } } -bool QRasterPaintEnginePrivate::isUnclipped(const QRect &rect, - int penWidth) const +bool QRasterPaintEnginePrivate::isUnclipped(const QRect &rect) const { Q_Q(const QRasterPaintEngine); const QRasterPaintEngineState *s = q->state(); @@ -2380,15 +2379,12 @@ bool QRasterPaintEnginePrivate::isUnclipped(const QRect &rect, if (cl->hasRectClip && cl->clipRect == deviceRect) return true; - if (s->flags.antialiased) - ++penWidth; - QRect r = rect.normalized(); - if (penWidth > 0) { - r.setX(r.x() - penWidth); - r.setY(r.y() - penWidth); - r.setWidth(r.width() + 2 * penWidth); - r.setHeight(r.height() + 2 * penWidth); + if (s->flags.antialiased) { + r.setX(r.x() - 1); + r.setY(r.y() - 1); + r.setWidth(r.width() + 2); + r.setHeight(r.height() + 2); } if (cl->hasRectClip) { @@ -2401,24 +2397,23 @@ bool QRasterPaintEnginePrivate::isUnclipped(const QRect &rect, } } -inline bool QRasterPaintEnginePrivate::isUnclipped(const QRectF &rect, - int penWidth) const +inline bool QRasterPaintEnginePrivate::isUnclipped(const QRectF &rect) const { - return isUnclipped(rect.normalized().toAlignedRect(), penWidth); + return isUnclipped(rect.normalized().toAlignedRect()); } inline ProcessSpans QRasterPaintEnginePrivate::getBrushFunc(const QRect &rect, const QSpanData *data) const { - return isUnclipped(rect, 0) ? data->unclipped_blend : data->blend; + return isUnclipped(rect) ? data->unclipped_blend : data->blend; } inline ProcessSpans QRasterPaintEnginePrivate::getBrushFunc(const QRectF &rect, const QSpanData *data) const { - return isUnclipped(rect, 0) ? data->unclipped_blend : data->blend; + return isUnclipped(rect) ? data->unclipped_blend : data->blend; } /*! diff --git a/src/gui/painting/qpaintengine_raster_p.h b/src/gui/painting/qpaintengine_raster_p.h index 4c7b6df88..8cdcec081 100644 --- a/src/gui/painting/qpaintengine_raster_p.h +++ b/src/gui/painting/qpaintengine_raster_p.h @@ -270,8 +270,8 @@ public: } bool isUnclipped_normalized(const QRect &rect) const; - bool isUnclipped(const QRect &rect, int penWidth) const; - bool isUnclipped(const QRectF &rect, int penWidth) const; + bool isUnclipped(const QRect &rect) const; + bool isUnclipped(const QRectF &rect) const; ProcessSpans getBrushFunc(const QRect &rect, const QSpanData *data) const; ProcessSpans getBrushFunc(const QRectF &rect, const QSpanData *data) const; -- 2.11.0