OSDN Git Service

optimize QRasterPaintEnginePrivate::isUnclipped() methods
authorIvailo Monev <xakepa10@laimg.moc>
Fri, 20 Mar 2020 20:14:49 +0000 (20:14 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Fri, 20 Mar 2020 20:14:49 +0000 (20:14 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/gui/painting/qpaintengine_raster.cpp
src/gui/painting/qpaintengine_raster_p.h

index f67cf28..35be6cd 100644 (file)
@@ -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;
 }
 
 /*!
index 4c7b6df..8cdcec0 100644 (file)
@@ -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;