qtdeclarative/examples/quick
Eskil Abrahamsen Blomfeldt be813b9955 Introduce hardware accelerated curve renderer for Shapes
This implements the Loop/Blinn algorithm for quadratic curves
as an optional backend for Qt Quick Shapes, basically distance
fields where the distance to curves are calculated in the
fragment shader.

This means cubic curves are approximated, which will give
varying results, but for many shapes (such as text) this is
efficient and means the shapes can be zoomed indefinitely
while still retaining curvature as well as anti-aliasing
working without MSAA.

Preliminary results give some frame rate improvements
compared to doing MSAA and GeometryRenderer, but the major
improvement is that you can get smooth curves at any zoom
level without re-triangulating the shape.

Note that the renderer currently does not do antialiasing
for straight lines. This would still require MSAA, but at
a lower cost than for GeometryRenderer since there are
much fewer triangles. Adding AA here as well is work in
progress.

Task-number: QTBUG-104122
Done-with: Paul Olav Tvete <paul.tvete@qt.io>
Done-with: Eirik Aavitsland <eirik.aavitsland@qt.io>
Done-with: Amr Elsayed <amr.elsayed@qt.io>
Change-Id: I6b4a1103546fbdfe760906f7a183101f8eedb9d3
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2023-05-26 14:45:21 +02:00
..
animation Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
canvas Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
customitems customitems examples: adhere to guidelines 2023-05-26 10:03:00 +02:00
delegatechooser Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
draganddrop Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
embeddedinwidgets Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
externaldraganddrop Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
imageelements Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
imageprovider Improve qmlimageproviderplugin's CMakeLists.txt 2023-05-16 16:08:11 +02:00
imageresponseprovider Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
itemvariablerefreshrate Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
keyinteraction Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
layouts layouts example: qmllint fix and use qsTr() 2023-05-23 10:59:52 +02:00
localstorage Add Local storage example to IO category 2023-05-09 21:28:06 +02:00
models Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
mousearea Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
multieffect Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
particles Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
pointerhandlers Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
positioners Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
quick-accessibility Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
quickwidgets Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
rendercontrol Fix qmllint warning in rendercontrol examples 2023-05-16 16:08:11 +02:00
righttoleft Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
scenegraph Add rhiunderqml example 2023-05-22 21:33:36 +02:00
shadereffects Fix qmllint-reported warning in shadereffects example 2023-05-16 16:08:11 +02:00
shapes Introduce hardware accelerated curve renderer for Shapes 2023-05-26 14:45:21 +02:00
shared Replace AUTO_RESOURCE_PREFIX with Qt CMake Policy in examples, tests 2023-02-21 19:45:44 +01:00
tableview Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
text Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
threading Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
touchinteraction Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
tutorials Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
views Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
window Make a few improvements to the Window example 2023-05-18 15:59:42 +02:00
CMakeLists.txt Examples: Use versioned CMake targets for Qt modules 2023-05-02 12:12:35 +02:00
quick.pro Add QtQuick.Effects & MultiEffect 2022-12-07 08:31:43 +02:00