summaryrefslogtreecommitdiffstats
path: root/src/svg/qsvgnode_p.h
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2023-04-12 13:21:54 +0200
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2023-04-17 13:29:44 +0200
commitd130c74f4f54cddcd5baa7d8dc4c5b68772345c2 (patch)
tree4755e76fd92e5a32da7de1128f9e103aeea06337 /src/svg/qsvgnode_p.h
parent659e6bf8ca14ab96acdb5d1b384e8e15ee7b0491 (diff)
Don't rasterize gigantic shapes
We set a limit for the bounding rect of shapes to avoid stalling applications for several minutes while rendering unreasonably large shapes. The limit can be disabled using an environment variable. [ChangeLog][Performance] Unreasonably large shapes are now ignored in SVG files to avoid stalling the application. The check can be disabled by setting QT_SVG_DISABLE_SIZE_LIMIT=1 in the environment. Pick-to: 6.2 6.5 Fixes: QTBUG-111850 Change-Id: Id8154049c96a565aad237ee007da0ee879446448 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/svg/qsvgnode_p.h')
-rw-r--r--src/svg/qsvgnode_p.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/svg/qsvgnode_p.h b/src/svg/qsvgnode_p.h
index d8c1ccd..df9ef8a 100644
--- a/src/svg/qsvgnode_p.h
+++ b/src/svg/qsvgnode_p.h
@@ -88,6 +88,7 @@ public:
QSvgTinyDocument *document() const;
virtual Type type() const =0;
+ virtual QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const;
virtual QRectF bounds(QPainter *p, QSvgExtraStates &states) const;
virtual QRectF transformedBounds(QPainter *p, QSvgExtraStates &states) const;
QRectF transformedBounds() const;
@@ -118,6 +119,8 @@ public:
QString xmlClass() const;
void setXmlClass(const QString &str);
+
+ bool shouldDrawNode(QPainter *p, QSvgExtraStates &states) const;
protected:
mutable QSvgStyle m_style;