diff options
| author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2024-06-05 12:26:16 +0200 |
|---|---|---|
| committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2024-06-11 12:06:21 +0200 |
| commit | 46538ce2bbffa848d14ecb20a56f79889098798d (patch) | |
| tree | 55649852886167eb9aeb7cda08be2605ecc277de /src/quickvectorimage/qquickvectorimage.cpp | |
| parent | 7a402446fbd837562f7806345a7c6ad12d0614b7 (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.cpp | 35 |
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 |
