Also added skeleton for remaining QML tests and some
inheritance updates to documentation.
Task-number: QTRD-3368
Change-Id: I28cb52c4738953b7f281ce91a3764f849643d35a
Change-Id: I28cb52c4738953b7f281ce91a3764f849643d35a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
If the context exists at renderer deletion, it is possible that
it no longer has valid surface, which means it won't be possible
to set it back to current if we change context for deletion cleanup.
Since the current context will be one of our shared contexts anyway,
there is no need to do a dummy context for cleanup unless the current
context is null.
Change-Id: Ibabe081742beb975ee848ccb3690703ef5b027a9
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Bug in adjustment logic caused adjustment to happen pretty much always.
Task-number: QTRD-3374
Change-Id: Id6151d2d3eb8369bbf9252e4eb4b76ed57fb1f3c
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
When static optimization is in use with mesh objects and range
gradient, and the object Y-value resolves into a texture coordinate
that is exactly on the texel boundary, the rendered fragments
of the object are not all same colors on some graphics cards,
despite all vertices having the same UV value.
Fixed by adjusting the Y-value slightly if it is close to the
boundary.
Task-number: QTRD-3370
Change-Id: Ie028602cbd9a00bb0e17049eb8f40feb8b18a6bf
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Context was not getting properly cleaned up in cases where
render thread stopped before the cleanup took place.
Now we ensure that required cleanup is done before context
thread terminates.
Change-Id: I1489914dafec928eebb69bac737f6f858ff49432
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Task-number: QTRD-3368
Just a skeleton with a very basic test set for now.
Change-Id: I53309374a7d9cbfd06a4cdfbeb302f6649db9c4a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Just a skeleton for now.
Change-Id: I27d577062e7e96880d843a87b71791f896bc2522
Change-Id: I27d577062e7e96880d843a87b71791f896bc2522
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
QtQuick's threaded renderer doesn't seem to always pair up sync and
render (or more accurately, beforeSynchronizing and node's
preprocess calls). Sometimes sync comes without a followup render,
or there are two syncs in a row, even though the sync is using
direct connection. Both of these cases broke the old
logic for handling position based queries.
Changed the logic to actually ensure we have resolved the query
before emitting the relevant signal.
Task-number: QTRD-3358
Change-Id: Ica6c8c311f53a06311c21532aaabc18c28556655
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Change-Id: If40f10043951409b3d6597776b60d7eb55c73eec
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Normals and triangles are generated according to data direction.
Task-number: QTRD-3160
Change-Id: Ia4286467682628930da3d82b204fd1ec078a396a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Added margin as abstract graph property.
If the margin is narrow, the positions of theedge labels of the axes
are adjusted to avoid overlap with edge labels on other axes.
Task-number: QTRD-3204
Change-Id: I7fa5a04c8f2091519d99689ef2f6cbcf799fb15e
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Zooming to cursor is now default operating mode of
the default input handler.
Task-number: QTRD-3263
Change-Id: I5699fc0ce7393059538972cd52f31f06d87e3d8d
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
The volume object that would go partially outside axis ranges
is scale and repositioned so that it only renders the portion
that is inside the axis ranges.
Change-Id: I792494e437998ba6276f58fab645767276c1476d
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Proper behavior of volume objects that are shown only partially
will be added in a separate patch later.
Change-Id: I1fcd98faa6c4a7d09e3fef1645ed9816ff54654f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Since volume items typically contain transparencies, make them
draw after regular custom items, which are less likely to be
transparent.
Change-Id: Id7c48b6c77d7ed8654b72923d7dccf4158c9c088
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Change-Id: I7cb3c59acef5364ff964da3e756d2db387b53308
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Low definition volume shader samples the texture at even
intervals, so it will sometimes skip texels, causing flickering.
Change-Id: Iee6cb0e8893498b89ce1a40f34701a53d100283e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Change-Id: I856c4166513f6d6f7b73fd52bc46d52ab1b8fdff
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
New subclass of QCustom3DItem, QCustom3DVolume is provided.
The documentation for the example will be done in a separate commit.
Change-Id: Idb3fdb0654c6bec7606ca012b75852a5a8412397
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Also fix custom item positioning in absolute mode as it was completely
broken in bars and z-coord was flipped in others.
Clarified Q3DObject::position property usage, namely that it is reserved
for internal use for now.
Some refactoring also done.
Task-number: QTRD-2567
Change-Id: I5da65b83a2f8ecf20f8fd054e59748278ef1a714
Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Also added properties to control rotation, zoom, and selection
individually.
Also added missing documentation about surface texture.
Task-number: QTRD-3202
Change-Id: I981edb7f336aea499440559f4a2098711200206d
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
API for setting a texture to surface.
Task-number: QTRD-3232
Change-Id: Icd9de61882b54b9c1fc84a742e49980926ca681d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Since shaders needed fixing anyway for surface because of this,
also implements the support for object gradients for surface,
which was missing.
Task-number: QTRD-2666
Task-number: QTRD-3211
Change-Id: I0c5da7fdfef308a96ec0bae4750fd22035da4e82
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Value 0.0 indicates automatic scaling (the default).
Task-number: QTRD-3192
Change-Id: I5e4cc1b7a03c0ba811e2ed3916a440906429af57
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Also separated the vertical and horizontal background margins.
Task-number: QTRD-3184
Change-Id: I988217d4df7749585dd85b5ea8f3f50254dca6ad
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
- Polar property for toggling the polar mode
- Example added. Example docs will be added in another patch once all
of the functionality the example needs has been implemented.
- Only surface graph supports polar so far. Scatter to be added later.
Change-Id: I54d36f764ac1771ac88f73a5f3a2142f2309f6e8
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Surface and scatter to follow in separate task
Task-number: QTRD-3074
Change-Id: I790078446cd1b805a83da2e3760eaf27c586aaab
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
This allows adding rows that have smaller Z-value than the
previously added row instead of being forced to insert rows
into the beginning of the data array in these cases.
Task-number: QTRD-2428
Change-Id: I4dc6c5a48a55ca494a2372f917aa7447f61f336e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
We are only able to optimize this in cases where rows and
columns of the model are directly mapped to rows and columns
of the data proxy. In other cases we do not know if the new
values of the changed data item in the model actually specify the
same row/column in our data proxy as the previous values.
Task-number: QTRD-2190
Change-Id: Ie014469ac894474900e5cfd6d91fd1a60353b1f7
Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
No longer reset the entire render item array if single item
changes, significantly speeding up this operation.
Task-number: QTRD-2190
Change-Id: Ia3de833b761dc6f24acff581ad79668f51c3e9c5
Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
No longer reset the entire render item array if single item or
row changes, significantly speeding up these operations.
Task-number: QTRD-2190
Change-Id: I44b8abd384003e252e4bfc34af5d73ac1dee34bf
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Cache all series instead of just the visible ones on all graphs
instead of just surface.
Changes to one series now trigger data update to only the affected
series, which should significantly improve performance in these
cases.
Task-number: QTRD-2600
Task-number: QTRD-2957
Change-Id: I6db7c689108fce8d25aace6682a193936d6f0eaf
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Also enable suppressing drawing the label on graph.
Selection label formatting was consequently moved from renderers
to series.
Task-number: QTRD-2896
Change-Id: Ia6a1a40298d8db0f54349de3eb27fb0b683dd302
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Number of grid lines and labels are no longer tied to segment
count.
Change-Id: I517ebc905f1f70e2e00ae86c05fd0e49e922845d
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Currently only used for label formatting.
Also some other preparatory changes for logaxis.
Task-number: QTRD-2787
Note: Not to be merged until 1.0 is released
Change-Id: I2d7ab70b9c51677d0edd5b0226fb779c9e346286
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
+ Rectangle used as main item in qml examples to make ui consistent
+ Surface autoaxis adjustment fixes for multiseries case
+ Qmlsurface example UI tweaks
Change-Id: Ie75b0efc08f9a56ca709f079b28865e34caa8641
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
These tamper with examples installation, which we do not want.
Change-Id: Ibc81a5fe3323c2c831f21cdea94d941704abc641
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Had to add one folder to the examples structure so
installation works correctly.
Change-Id: Ic92dfe9997413a6243abcf5eeba12744ba9e938c
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Multiseries support for item and row changes.
Task-number: QTRD-2767
Change-Id: I5702989e7f59913481a2ca888e402effa22a4221
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Quaternions are actually easier to use in most use cases.
Added some convenience functionality for QML to enable using
axis/angle combinations, too.
Change-Id: I61c76e0967b4808aa9adaf43dfe6f4596c9ce353
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Quaternions are pain in the behind to use, especially
in QML, so change them to angle + vector combinations.
Change-Id: I25eb5ea92deaf3a079e2e193cce2e8de89f3c3c4
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
+Fix itemAt() in surface proxy
+Add itemAt(QPoint) in bar and surface proxies
+Misc fixes to other examples
Task-number: QTRD-2816
Change-Id: I5e06cfce98f74719a20885e3ca5a1e6fefb23a9c
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>