| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This adds functionality corresponding to QBrush transform to QuickShapes.
Change-Id: I2b5903f8c228adec65a6f5be64e3816143879302
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
The QuadShape, CubicShape and Small Polygon test shapes all had
hardcoded the fillrule, overriding the setting in the ui, which hence
was nonfunctional.
Change-Id: I51d84cf38bb15a41f32bc035c67b280ddfd24967
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
A recent copy-paste change for control size policy had a syntax error.
Pick-to: 6.7
Change-Id: I2153a644c7230a471598cc61cce9f4e1af0c69a2
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all test files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I26d72e8de04d4c7c57b3b7838af5d033265de5ba
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The size policy of item updated as part of task QTBUG-117597. This
patch update existing examples and manual tests that depends on quick
layout to embrace size policy change.
Task-number: QTBUG-117597
Pick-to: 6.7
Change-Id: I68469a3bba3c4d3e5ed4b6eae0fd765b5206efc0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
| |
This issue was found in fonts where intersection match a vertex of the
path. With this change we take care of such points properly.
Pick-to: 6.7
Change-Id: Ibe2f0334e748351066e324f8bb10774fc505e832
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the CurveRenderer is not working when the path is
self-intersecting.
With this patch, the self-intersections are removed before the
path is used for filling (optionally, default: on) The stroking
path is untouched.
The function findOverlappingCandidates finds candidates of elements
that might be intersecting. Its complexity is O(n log n) and can
also be used in other parts of the code where overlapping bounding
triangles need to be identified.
The function solveIntersections removes all intersections from
a QQuadPath. If intersections are solved, the path is oriented such
that the filling is on the right side of the path. If no intersections
are found, the path is returned without any changes. The optional
argument alwaysReorder can be used to force a reordering of the paths,
such that the filling of the shape is always on the right side of the
path.
Intersections are found with Newtons algorithm with 9 different
starting values. This is reliable in finding all intersections but
the starting values could be improved/reduced to improve performance.
Pick-to: 6.7
Change-Id: I088e4edfff755155521ed91114bc67f63c6e546a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Remove stray reference to implicitWidth/Height now that they are not 0
anymore.
Change-Id: I9de062481a857f5781381aa4523272623ef780d3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the internals of the curve renderer out from
Qt Quick Shapes and into a more centralized location
in Qt Quick, so that we can use the same code to create
a new text backend for rendering large scale text without
artifacts.
Change-Id: I3f7e6f7961c1bbe230fcb531c0ca028e038c1afd
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add AA offset for strokes in the vertex shader
* Add a normal vector to the vertex data, so we know the direction
to move each point. Move the HG calculation for solving the cubic
to the vertex shader (done by Matthias).
* Also split up the curve elements for path stroking, to create
tighter fitting triangles. (This does reveal some cases where the
triangulation algorithm fails, which were previously masked by the
2x safety margin)
* Also improve the triangulation by using the inner bisector when
possible, leading to significantly less overdraw. As part of this,
customTriangulator2() got a major refactor. It now has separate logic
for inside and outside points.
Remove debug color from vertex attributes
* We make this a uniform instead, like in the stroke node, and
calculate the debug color from the curvature data. With this
path, we no longer show internal triangles as green, but
otherwise it should be correct.
Also improved documentation and various code cleanups and refactoring
Done-with: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Done-with: Eirik Aavitsland <eirik.aavitsland@qt.io>
Task-number: QTBUG-104122
Pick-to: 6.6
Change-Id: Ib2817177eaaf4a0b1196cae77a28fca39349db9c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a specialized stroke shader which replaces the
curve flattening triangulating stroker as the default. The
triangulating stroker is still available via an environment
variable for testing. Dashed strokes are now done by cutting
the path into segments ahead of time and applying the normal
solid stroking algorithm to the corresponding path.
In addition, the fill shader no longer depends on
the derivatives extension except when used in 3D scenes to
support perspective transforms.
The preprocessing of the shape has also gotten a few bug
fixes and improvements and there are extremely few artifacts
left.
Done-with: Paul Olav Tvete <paul.tvete@qt.io>
Done-with: Eirik Aavitsland <eirik.aavitsland@qt.io>
Done-with: Matthias Rauter <matthias.rauter@qt.io>
Task-number: QTBUG-104122
Change-Id: Ib49b41019956be3e3cd509d1f3cef6842658aceb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Matthias Rauter <matthias.rauter@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This contains numerous updates/improvements to the curve renderer
and the manual test.
Most notably, it replaces the Delaunay triangulator with a more robust
algorithm which uses qTriangulate() for the internal hull (like the basic
code path) and a separate triangulation for curves which adds triangles
on the outside and calculates texture coordinates accordingly. This
gives antialiasing on straight lines as well.
It also has multiple improvements to the cubic-to-quad algorithm, for
instance circles now look as they should.
Currently, the QTriangulatingStroker is used for solid strokes (causing
jagged edges there) and the QPainterPath stroker is used for dash strokes
(causing some issues with antialiasing).
Pick-to: 6.6
Task-number: QTBUG-104122
Change-Id: Ic195aa874dc73c62359a93764ef38a09efb012e3
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
| |
Make margin editable and support stroke when reading SVGs
Change-Id: I1706665cd6e029c7e9f9750a2597fd55a956fdfc
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
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>
|