aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickvectorimage/qquickvectorimage.cpp
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2024-06-05 12:26:16 +0200
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2024-06-11 12:06:21 +0200
commit46538ce2bbffa848d14ecb20a56f79889098798d (patch)
tree55649852886167eb9aeb7cda08be2605ecc277de /src/quickvectorimage/qquickvectorimage.cpp
parent7a402446fbd837562f7806345a7c6ad12d0614b7 (diff)
Add VectorImage.rendererType property
The VectorImage was missing a way to set the renderer type of Qt Quick Shapes it uses. Came up during API review/usability testing. Pick-to: 6.8 Change-Id: Id0f090c9555838f53c8f0fa4b644d80a9ae924d6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/quickvectorimage/qquickvectorimage.cpp')
-rw-r--r--src/quickvectorimage/qquickvectorimage.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/quickvectorimage/qquickvectorimage.cpp b/src/quickvectorimage/qquickvectorimage.cpp
index deda4dca7c..06b17d38aa 100644
--- a/src/quickvectorimage/qquickvectorimage.cpp
+++ b/src/quickvectorimage/qquickvectorimage.cpp
@@ -70,7 +70,8 @@ void QQuickVectorImagePrivate::loadSvg()
svgItem = new QQuickItem(q);
QQuickVectorImageGenerator::GeneratorFlags flags;
- flags.setFlag(QQuickVectorImageGenerator::CurveRenderer);
+ if (preferredRendererType == QQuickVectorImage::CurveRenderer)
+ flags.setFlag(QQuickVectorImageGenerator::CurveRenderer);
QQuickItemGenerator generator(localFile, flags, svgItem);
generator.generate();
@@ -220,5 +221,35 @@ void QQuickVectorImage::setFillMode(FillMode newFillMode)
emit fillModeChanged();
}
-QT_END_NAMESPACE
+/*!
+ \qmlproperty enumeration QtQuick.VectorImage::VectorImage::preferredRendererType
+
+ Requests a specific backend to use for rendering shapes in the \c VectorImage.
+
+ \value VectorImage.GeometryRenderer Equivalent to Shape.GeometryRenderer. This backend flattens
+ curves and triangulates the result. It will give aliased results unless multi-sampling is
+ enabled, and curve flattening may be visible when the item is scaled.
+ \value VectorImage.CurveRenderer Equivalent to Shape.CurveRenderer. With this backend, curves
+ are rendered on the GPU and anti-aliasing is built in. Will typically give better visual
+ results, but at some extra cost to performance.
+
+ The default is \c{VectorImage.GeometryRenderer}.
+*/
+
+QQuickVectorImage::RendererType QQuickVectorImage::preferredRendererType() const
+{
+ Q_D(const QQuickVectorImage);
+ return d->preferredRendererType;
+}
+
+void QQuickVectorImage::setPreferredRendererType(RendererType newPreferredRendererType)
+{
+ Q_D(QQuickVectorImage);
+ if (d->preferredRendererType == newPreferredRendererType)
+ return;
+ d->preferredRendererType = newPreferredRendererType;
+ d->loadSvg();
+ emit preferredRendererTypeChanged();
+}
+QT_END_NAMESPACE