| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
Say hello to Shape.
Change-Id: I1093feee4acc375e62bae1d351db0a7969a536d0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The own list property must be kept. However, we can reuse
QQuickItemPrivate's data accessors in order to start supporting
code like:
Shape {
..
ShapePath { ... }
ShapePath { ... }
Rectangle { ... }
Image { ... }
// any other visual type
// or non-visual:
Timer { ... }
}
Change-Id: I6d502d697cae37bf16857770273a749cee1b3aa3
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thus application code becomes:
ShapePath {
...
fillGradient: LinearGradient {
...
GradientStop { ... }
}
}
which is even more clean and readable. The duplication for stops is
now avoided.
Change-Id: I50ae2f388e21683a37dc4787763dc71e16eef4f5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp
Change-Id: Id8107cb0de0fbfe7120a90a137b49c2b915ff2d3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Shape { ShapePath { Path { ... } } } simply becomes
Shape { ShapePath { ... } }
Change-Id: Ie57936cd7953c8a8d6c67e78b9d73bdbe2a05316
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I299354da0632fb0b8487cfb13748ed58b97d75fd
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: Iea0bb0788357bc615d0e9ea411087114b8b3b720
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I1cd686cff60bd40fe2cbbc34f917fac7835b6b7d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
Change-Id: If2e7c1cf0f1522f6052bbc3e3636ef62bef1b4db
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I0cbb2ba4a00580e6a74a4e4085fc4eb06d0fadae
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I1ddfba07e80cd0315a2ef85c85a568636f8e808a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Iefd1a2656161b69de73e66e0bcefc36a49f733e2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Iba540adaeffb0098fc4e1923050eb611bf47287b
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
So that it actually performs when clipping the tiger. Add an example.
Change-Id: I7c1c6244710febdb6b02852ebca094665adec417
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I09ccdf9c542ebca56187284a0d1776b64c98bfe8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Spending 300+ ms in polish for the tiger when running with the generic
backend is not going to fly.
Therefore, add an optional mode for asynchronous triangulation.
Change-Id: Ida44c7b8a28d38fb11243a6657221f039c62e21b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I762e578aaf14a77efa26ce3fda2abb0e335003ea
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Combine stroke-only and fill-only. Drop the Repeater since it shows
the bad practice of unnecessarily creating multiple PathItem instances.
Drop the PathSvg example for now since this is a discouraged element.
Move the tiger into a separate file and use an async Loader in order to
avoid the 2 step activation.
Change-Id: Ie65eb0284bdb8957f8fd5af7557542a6d044ef61
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Instead of
PathItem {
item properties
stroke/fill properties
path: Path { ... }
}
switch to
PathItem {
item properties
VisualPath {
stroke/fill settings
Path { ... }
}
VisualPath {
stroke/fill settings
Path { ... }
}
...
}
Limiting PathItem to a single path is arguably too limited. Applications will
likely try to work this around by using multiple PathItems. While this is not
particularly bad for the generic (geometry node based) implementation, it is
a massive overkill for the rendernode-based ones. Therefore, avoid the hassle
and allow multiple paths with different stroke/fill parameters inside a single
PathItem.
Change-Id: Ie7980cd656deb7d4cb1ee4eaa3c090c4b0493c7d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I1a5698116bac2c2b7d1ecf692398c478b10663fd
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Use negative values as the trigger to disable stroking altogether. This matches
both QPainter and NVPR better.
Change-Id: I51395ae310fce8a8da0c06174eafa1dc17aae1db
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I27aa5f94165fb07807d2bb711d81eade552b9f76
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
The generic backend uses the triangulator from QtGui, but is in
fact OpenGL-only for now due to materials.
The NVPR backend uses GL_NV_path_rendering on NVIDIA hardware with
OpenGL 4.3+ or OpenGL ES 3.1+.
The software backend simply uses QPainter.
With the generic backend each PathItem is backed by a non-visual root node
and 0, 1 or 2 child geometry nodes, depending on the presence of visible
stroking and filling. The potentially expensive triangulation happens on
updatePolish(), on the gui thread. This is proven to provide much smoother
results when compared to doing the geometry generation on the render thread
in updatePaintNode(), in particular on power-limited embedded devices.
The NVPR backend uses a QSGRenderNode in DepthAware mode so that the batch
renderer can continue to rely on the depth buffer and use opaque batches.
Due to not relying on slow CPU-side triangulation, this backend uses 5-10
times less CPU, even when properties of the path or its elements are
animated.
The path itself is specified with the PathView's Path, PathLine, PathArc,
PathQuad, etc. types. This allows for consistency with PathView and the
2D Canvas and avoids a naming mess in the API. However, there won't be a
100% symmetry: backends like NVPR will not rely on QPainterPath but process
the path elements on their own (as QPainterPath is essentially useless with
these APIs), which can lead to differences in the supported path elements.
The supported common set is currently Move, Line, Quad, Cubic, Arc.
The patch introduces PathMove, which is essentially PathLine but maps to
moveTo instead of lineTo. More types may get added later (e.g. NVPR can do
a wide variety of optimized rounded rects, but this requires directly
specifying a GL_ROUNDED_RECTx_NV command, thus neededing a dedicated Path
type on our side too)
For filling with gradients only linear gradients are supported at the
moment.
In addition to the declarative API, a more lightweight, QObject-less
JS-callable API should be considered as well for the future.
Change-Id: I335ad64b425ee279505d60e3e57ac6841e1cbd24
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
Change-Id: I3c41b9fc9ba7d41741e4dd400402ae80dd7726d9
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The Qt namespace should only be used for Qt types, not user (or example)
types.
Change-Id: I9361bcd8ad70fe6b8d3b2fe20494466901ceeaa8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Change-Id: I065715a523028a91ee3a841140734ad6eba240c2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |_|_|_|_|_|_|/
|/| | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Use M_PI in C++ and Math.PI in JavaScript (including QML).
Use qmath.h's value for M_PI where we can't avoid an explicit value.
Task-number: QTBUG-58083
Change-Id: Iabe938aff62ceac27b939ec33c6ee5e854aac15e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: I61ab3d0bd8cc02f640c60c037226eace09ec09ba
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
the code was originally meant to link the plugin if it's not built into
qtsql. this logic did not survive the various build system refactorings,
but it's also entirely pointless, because available static plugins are
now automatically linked.
Change-Id: I1d4f08ed5abdcc15c6b5f97bb4f6caa0a5db6f18
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | | | | |
| |_|_|_|_|_|/
|/| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4argumentsobject.cpp
src/qml/jsruntime/qv4arraydata.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4errorobject.cpp
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4internalclass.cpp
src/qml/jsruntime/qv4lookup.cpp
src/qml/jsruntime/qv4managed.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4heap_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/memory/qv4mmdefs_p.h
src/quick/scenegraph/util/qsgdistancefieldutil.cpp
src/quick/scenegraph/util/qsgdistancefieldutil_p.h
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Nothing over the top, just some page animations on enter/exit.
Change-Id: I822efe3e25928ff7797dd2911b9d2ce8dce00936
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Ieaf45a817d4568bd2cd7c3cbbfee62435c2e2594
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
|
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add information such as manufacturer, model and serial number that is
now available on QScreen to the Screen attached property.
[ChangeLog][QtQuick][Screen] Add manufacturer, model and serial number.
Change-Id: If8f33dffa5eff33111f93212249424b9092250b8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
boundingRect is not documented for public use, and there's no need to
repeatedly call it either.
Change-Id: I844c704da0c0e7a5e94b387c5ebe9b26dc6b59fe
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Ibed6ee74d36b4ce37391c82db00a0abd30d09e7a
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It was never necessary for this example.
This reverts commit 452a78d0ac4a1579733a8ab641be24c9b7c0dd96.
Task-number: QTBUG-60014
Change-Id: Ib3f30d1d5de21d567919aa650bf3334247d5f271
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | | |
| |_|_|_|/
|/| | | |
| | | | | |
Change-Id: I95914046889022e0ef9bdc17338dc5895c5223fe
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Task-number: QTBUG-60014
Change-Id: I3f44e68427f3f2855fd030dfa3f02be066d6fce3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/qml/jsruntime/qv4functionobject_p.h
Change-Id: I4bbed45f1fe02cf64df3c8a5f92f811e38e772f3
|
| |\ \ \ \ |
|
| | |\ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qqmltypecompiler_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/qml/qqmltypeloader_p.h
Change-Id: I4894555ab7a0879b56bbda7a46d16d1c40c19e7c
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Icbd2393d4b8523e24328f765e76869c86afb3e72
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp
src/qml/jit/qv4assembler.cpp
src/qml/jit/qv4assembler_p.h
src/qml/jit/qv4isel_masm.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4engine.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4mmdefs_p.h
Change-Id: I9966750b7cd9106b78e4c4779f12b95a481cca40
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Check for corrupted records, fixing warnings:
qrc:///demos/stocqt/content/StockListModel.qml:90: TypeError: Cannot call method 'split' of undefined
Also check the value and prevent NaN from appearing.
Change-Id: I3a9d010c61fb0f017aef37df7f54a7ad4d7d7d53
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
...in QQuickWindow::setRenderTarget().
The rendercontrol example is extended with a --onscreen
command line argument that can be used to request rendering
to the default framebuffer of the window.
Change-Id: I7a500d1585dee8334b902fb1dddcb1cb21a2e038
Task-number: QTBUG-59340
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The usage of the QQmlListProperty QList constructor is discouraged since
QList violates QML's memory management rules.
Replaced the QList with a QVector and passed the function pointers to the
QQmlListProperty constructor instead, as officially recommended.
Change-Id: I6d28a43530cc3edd5e7d89c351bad70deb721689
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | |
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/compiler/qv4ssa.cpp
src/quick/accessible/qaccessiblequickview_p.h
src/quick/items/qquickmousearea.cpp
src/quick/util/qquickanimatorjob.cpp
tools/qmlplugindump/main.cpp
Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also link it from more places
Change-Id: Ib5fbf89f4a039f885e918d57ee477e9788049d8d
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The mouth line was not closed and the right eye line was too big
Change-Id: Ifea4a8dbdd38df3c83cd80491210585fcbb76d3c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I312dcd7f8bbe6e15b157406e174c160e0eb7e225
|