diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2023-04-12 13:21:54 +0200 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2023-04-17 13:29:44 +0200 |
commit | d130c74f4f54cddcd5baa7d8dc4c5b68772345c2 (patch) | |
tree | 4755e76fd92e5a32da7de1128f9e103aeea06337 /src/svg/qsvgnode_p.h | |
parent | 659e6bf8ca14ab96acdb5d1b384e8e15ee7b0491 (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.h | 3 |
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; |