From 17ce2c06a2b40e58672064222aef06dc6a6f313e Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Fri, 4 Nov 2022 16:15:52 +0100 Subject: 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 --- src/svg/qsvggenerator.cpp | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) (limited to 'src') 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 << "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=\""<stream << '>' << Qt::endl; -- cgit v1.2.1