diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2022-11-04 16:15:52 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2022-11-21 01:27:48 +0100 |
commit | 17ce2c06a2b40e58672064222aef06dc6a6f313e (patch) | |
tree | 66137fefb0330a870eae61e2bf7583556a1a446e | |
parent | 9a970654f04f75c08dbc8366a73efa45d4142fd5 (diff) | |
download | qtsvg-17ce2c06a2b40e58672064222aef06dc6a6f313e.tar.gz |
QSvgPaintEngine: code tidies
When the paint engine state changes and updateState gets called,
the engine unconditionally streams out the entire gstate.
To do so, the dirty flags are OR'ed with a all-1 mask, and then
its flags individually tested. But those tests are now always true,
because *we* just set every flag. Just remove the flag handling.
Change-Id: Ibd9bbaef91f189da5366bc24498926c3d3abed20
Reviewed-by: Albert Astals Cid <aacid@kde.org>
-rw-r--r-- | src/svg/qsvggenerator.cpp | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp index b27b6ba..d452670 100644 --- a/src/svg/qsvggenerator.cpp +++ b/src/svg/qsvggenerator.cpp @@ -942,10 +942,7 @@ void QSvgPaintEngine::drawImage(const QRectF &r, const QImage &image, void QSvgPaintEngine::updateState(const QPaintEngineState &state) { Q_D(QSvgPaintEngine); - QPaintEngine::DirtyFlags flags = state.state(); - // always stream full gstate, which is not required, but... - flags |= QPaintEngine::AllDirty; // close old state and start a new one... if (d->afterFirstUpdate) @@ -953,32 +950,21 @@ void QSvgPaintEngine::updateState(const QPaintEngineState &state) *d->stream << "<g "; - if (flags & QPaintEngine::DirtyBrush) { - qbrushToSvg(state.brush()); - } + qbrushToSvg(state.brush()); + qpenToSvg(state.pen()); - if (flags & QPaintEngine::DirtyPen) { - qpenToSvg(state.pen()); - } - - if (flags & QPaintEngine::DirtyTransform) { - d->matrix = state.transform(); - *d->stream << "transform=\"matrix(" << d->matrix.m11() << ',' - << d->matrix.m12() << ',' - << d->matrix.m21() << ',' << d->matrix.m22() << ',' - << d->matrix.dx() << ',' << d->matrix.dy() - << ")\"" - << Qt::endl; - } + d->matrix = state.transform(); + *d->stream << "transform=\"matrix(" << d->matrix.m11() << ',' + << d->matrix.m12() << ',' + << d->matrix.m21() << ',' << d->matrix.m22() << ',' + << d->matrix.dx() << ',' << d->matrix.dy() + << ")\"" + << Qt::endl; - if (flags & QPaintEngine::DirtyFont) { - qfontToSvg(state.font()); - } + qfontToSvg(state.font()); - if (flags & QPaintEngine::DirtyOpacity) { - if (!qFuzzyIsNull(state.opacity() - 1)) - stream() << "opacity=\""<<state.opacity()<<"\" "; - } + if (!qFuzzyIsNull(state.opacity() - 1)) + stream() << "opacity=\""<<state.opacity()<<"\" "; *d->stream << '>' << Qt::endl; |