summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Use QOffscreenSurface instead of QWindow for dummy surfaces.Miikka Heikkinen2014-10-301-2/+2
| | | | | | | | | Android doesn't like creating extra QWindows, so changed dummy surfaces used to do static initialization and cleanup to use QOffscreenSurface. Change-Id: Ia42e288a05ef49524252c457f3a3494677e3fc63 Reviewed-by: Mika Salmela <mika.salmela@theqtcompany.com>
* Support for dynamic opengl builds.Miikka Heikkinen2014-10-291-3/+7
| | | | | | Task-number: QTRD-3392 Change-Id: I786bbf5ee9252b92d43d02d6b88ed9b986b4a5eb Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Simplify context handling at cleanup.Miikka Heikkinen2014-10-151-2/+0
| | | | | | | | | | | | | 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>
* Fix context cleanupMiikka Heikkinen2014-10-131-0/+9
| | | | | | | | | | 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>
* Fix screen position based queries in threaded rendering environmentMiikka Heikkinen2014-10-091-5/+8
| | | | | | | | | | | | | | | | 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>
* Fix selection color and gradient for static optimizationMiikka Heikkinen2014-10-011-0/+4
| | | | | | | | | | Added separate shaders for rendering selected items, as the texture mapping that the regular static optimization shaders expect is not correct for single objects. Task-number: QTRD-3306 Change-Id: I6eb6cef94a4d2b4e5bdd03748f18db641a9fc4f6 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Make background margin configurableMiikka Heikkinen2014-09-301-0/+5
| | | | | | | | | | | 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>
* Implement zooming to cursorMiikka Heikkinen2014-09-261-2/+17
| | | | | | | | | 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>
* Change custom labels to use label shaderMiikka Heikkinen2014-09-191-0/+3
| | | | | | | | | This fixes the problem with specular highlight making camera-facing labels unreadable. Task-number: QTRD-3276 Change-Id: If16424b07a1f3362428980353c5fb5213c33d06b Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Added possibility to change graph's localeMiikka Heikkinen2014-09-191-0/+2
| | | | | | | | | | Locale affects how axis labels are formatted. Default locale is still the "C". Task-number: QTRD-3229 Change-Id: I6126ce676906f4bbc91ae0abd18775bc1d564118 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Implement volume slice framesMiikka Heikkinen2014-09-121-1/+6
| | | | | Change-Id: I409f3c95892b26ca6097dd4509109fc9978b9900 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Limit volume to axis rangesMiikka Heikkinen2014-09-101-1/+2
| | | | | | | | | 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>
* Add possibility to scale custom items according to data rangesMiikka Heikkinen2014-09-081-0/+2
| | | | | | | | 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>
* Add option to use low definition volume shader.Miikka Heikkinen2014-09-021-1/+2
| | | | | | | | 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>
* Reflection API addedTomi Korpipää2014-08-261-11/+4
| | | | | | | Task-number: QTRD-3287 Change-Id: I6c06b8fe025e0f1f87be00be906cab0e1f18a19f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Implement volume rendering supportMiikka Heikkinen2014-08-181-2/+9
| | | | | | | | 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>
* Enable camera targeting.Miikka Heikkinen2014-08-061-0/+4
| | | | | | | | | | | | | | | 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>
* Fix labels and grid lines changing size when aspect ratio is changedMiikka Heikkinen2014-07-021-0/+1
| | | | | | | | | | | 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>
* Added horizontal aspect ratio property for abstract graphsMiikka Heikkinen2014-07-011-0/+2
| | | | | | | | Value 0.0 indicates automatic scaling (the default). Task-number: QTRD-3192 Change-Id: I5e4cc1b7a03c0ba811e2ed3916a440906429af57 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Adjust background margins based on angular labels and titleMiikka Heikkinen2014-06-301-1/+6
| | | | | | | | Also separated the vertical and horizontal background margins. Task-number: QTRD-3184 Change-Id: I988217d4df7749585dd85b5ea8f3f50254dca6ad Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Fix polar axis title positioningMiikka Heikkinen2014-06-271-1/+2
| | | | | | Task-number: QTRD-3184 Change-Id: I366f41b928e06931784c6ff74e9b6b8a52414e3f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add radialLabelOffset property for graphsMiikka Heikkinen2014-06-261-0/+2
| | | | | | | | | This property indicates where radial labels of the polar chart are drawn Task-number: QTRD-3184 Change-Id: I1500e67da5e578b90d679876130c2d56c1d08039 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Add flipHorizontalGrid property for surfaceMiikka Heikkinen2014-06-261-0/+1
| | | | | | | | | | | | This property allows drawind the horizontal grid and axis labels on top of the graph rather than on the bottom. This is useful when surface graph is used for 2D spectrograms in orthographic mode, as otherwise the grid is covered by the surface itself. Particularly relevant for polar plots of the same. Task-number: QTRD-3184 Change-Id: I9dbcdbfc754e13af52d2cf31a1d9991ef4b241f7 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Polar graph support, phase oneMiikka Heikkinen2014-06-261-0/+17
| | | | | | | | | | - 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>
* Bars: Moved bar, background and grid line drawing to separate methodsTomi Korpipää2014-06-241-0/+10
| | | | | | | + Added floor reflection support in ifdefs Change-Id: I1060aee1bc8f7a0360ad01675c36c0f1a2120f1c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Scatter perf improvementMika Salmela2014-06-051-0/+2
| | | | | | | Task-number: QTRD-3148 Change-Id: I2c9efa84184819aaac123ee29685bc3a9e35bfe6 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Clean up renderersTomi Korpipää2014-06-031-1/+0
| | | | | | | Task-number: QTRD-3149 Change-Id: I71b9b7533ad3730d0d203c3d07e66d824b690fbb Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Fix various issuesMiikka Heikkinen2014-06-021-1/+1
| | | | | Change-Id: I4a6d4775f3ca578370a9ce23491bddcb0f5486ec Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Optionally show axis titles on the graphMiikka Heikkinen2014-05-271-0/+31
| | | | | | Task-number: QTRD-2961 Change-Id: I6a344156bd29fa8fb1ede0546af4d0e67e5e2db4 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Added API for changing data aspect ratioTomi Korpipää2014-05-261-0/+6
| | | | | | Task-number: QTRD-3144 Change-Id: I9acd1be13083d7fbbed840882260a60f46c5f698 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Update custom item translation when axes change, if needed Tomi Korpipää2014-05-221-0/+1
| | | | | | | Task-number: QTRD-3129 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Added support for custom items with absolute coordinatesTomi Korpipää2014-05-211-1/+2
| | | | | | Task-number: QTRD-3122 Change-Id: Iefd4c4adad45721ed3519bdcecbbfa1e97039f08 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Implement axis label autorotationMiikka Heikkinen2014-05-191-0/+2
| | | | | | Task-number: QTRD-2857 Change-Id: I158abb75272813cf7eb5d4b419e24325389d940e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Optimized custom item addition/removalTomi Korpipää2014-05-191-1/+1
| | | | | | Task-number: QTRD-3056 Change-Id: I653d8aeec797b76c19d9b542391b79e9370e7501 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Dirty bits to custom item Tomi Korpipää2014-05-161-0/+2
| | | | | | | Task-number: QTRD-3082 Change-Id: I1503b067edcc677904ca16c1501109187809f98b Change-Id: I1503b067edcc677904ca16c1501109187809f98b Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Added option to use orthographic projectionTomi Korpipää2014-05-141-0/+2
| | | | | | | Task-number: QTRD-3078 Change-Id: I07ebc2b7edd542cd28e405dfc80282f18b7a7314 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* API to query custom item selection Tomi Korpipää2014-05-131-0/+1
| | | | | | | | | | Task-number: QTRD-3046 + Added missing elementSelected signal to QML Change-Id: I5e79d8e910d2730e3d2ae5550ce576f01aac0b18 Change-Id: I5e79d8e910d2730e3d2ae5550ce576f01aac0b18 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Added API for querying label selectionTomi Korpipää2014-05-131-0/+4
| | | | | | Task-number: QTRD-3045 Change-Id: Ib5c8f29bcf0148ae604e27b2a81e6f72a2dbca2a Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* CustomDataItem made into a public classTomi Korpipää2014-05-121-2/+2
| | | | | | Task-number: QTRD-3055 Change-Id: I1e449df7c1bcb48fc639dbae579e2e1499c9ef2b Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Value axis reversing supportMiikka Heikkinen2014-05-081-0/+2
| | | | | | | Task-number: QTRD-2428 Change-Id: I51b3a1f8f974d5b72b36ee1188b7557539b9609b Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Misc cleanupMiikka Heikkinen2014-04-281-2/+0
| | | | | Change-Id: I126edfa39dcfe4fe71e89527b5ae05b7d773c61e Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add custom item support, part 2Tomi Korpipää2014-04-161-1/+13
| | | | | | | | | Task-number: QTRD-2866 + Added custom item rendering Change-Id: If24400fed7c0467d8ebbd554d6e4df3ec5a205f3 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Add custom item support, part 1Tomi Korpipää2014-04-151-1/+14
| | | | | | | | | | | | | | Task-number: QTRD-2866 + Added API for adding and removing custom items + Added custom data and custom render items + Added shaders for textured objects + Added custom item rendering draft to scatter + Fixed some shaders - to be continued in part 2 Change-Id: I9735fd02fc9e86ae486cca4c06f6d7f2a4b0b7da Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Optimize multiple series rendering.Miikka Heikkinen2014-04-101-3/+6
| | | | | | | | | | | | | | 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>
* Introduce fps measurement via propertiesMiikka Heikkinen2014-04-041-11/+0
| | | | | | | Task-number: QTRD-2134 Change-Id: I181ee6c784b998886c2292b7548e16ce75d86458 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Axis label dragging support, part 2Tomi Korpipää2014-04-031-0/+2
| | | | | | | | | | | Task-number: QTRD-2367 + Added emitting selection signals + Added an example about creating an input handler for axis label dragging - Snapshot for example docs to be taken Change-Id: I641f4feb9e31c32023727b1c7c695324923accc4 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
* Actually use axis formatter in renderer.Miikka Heikkinen2014-03-251-1/+1
| | | | | | | Task-number: QTRD-2787 Change-Id: I0ced8e506928df5fba2e8df94258b53457f4412e Reviewed-by: Mika Salmela <mika.salmela@digia.com>
* Introduce value axis formatterMiikka Heikkinen2014-03-241-7/+16
| | | | | | | | | | | | | 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>
* Move selection labels to renderer from render itemsMiikka Heikkinen2014-02-241-0/+7
| | | | | | | | | | | | Creating a new label on demand is fast enough, so we don't need to store old labels. Storing labels unnecessarily leads to unchecked use of graphics memory. Optimized bar slices a bit by having separate class of render items for slice items. Change-Id: I5afdecfb3949393341b6c3eaefbc667c65da32e3 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
* Clean up public API and includes usageMiikka Heikkinen2014-02-181-2/+1
| | | | | Change-Id: I20ba0ffafa6bbe22d624a15fe3046ef2e33ab6d7 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>