aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/scenegraph
Commit message (Collapse)AuthorAgeFilesLines
* fix rendernode example buildLorn Potter2019-11-121-0/+4
| | | | | | | | | | When not building developer mode, the install does not copy the files on other platforms Fixes: QTBUG-79781 Change-Id: Ibc8352c59d16b69618d53750511d5b5650ed5290 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Doc: Fix documentation warningsTopi Reinio2019-11-111-1/+1
| | | | | | | | | | | | | | | | | | There were a lot of documentation warnings introduced by the separation of QtQml.Models and QtQml.WorkerScript modules from the QtQml documentation project into their own sub-projects. Fix the above, and also ensure that the experimental Qt.labs.qmlmodels QML types are listed in the documentation, and add them also on the QML module page for QtQml.Models. A few warnings remain, they may be indicative of issues not in the scope of this commit. Fixes: QTBUG-79812 Change-Id: Idc25c976e4c96feab4aae893519d6c9245f57a64 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add guards in .pro of platform/api-specific scenegraph examplesLaszlo Agocs2019-10-104-0/+8
| | | | | | Task-number: QTBUG-78783 Change-Id: Icda60d4358c35de311552fd7562c3cf0c3425b7b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Make rendernode example compile on iOSLaszlo Agocs2019-10-092-2/+5
| | | | | | | | | | | Without Metal support for now. The ifdef pattern is the same as in QRhi in qtbase. It is to be revised once Metal support is introduced for iOS. Task-number: QTBUG-78854 Change-Id: I10f37ddcb42c27958270bd3ca8bf9b8457a4bea3 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Clean up GraphicsStateInfo after API reviewLaszlo Agocs2019-09-184-16/+16
| | | | | Change-Id: I715ad71153151a0e6521bc182227d9fa2dc0a3ea Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Rename textureinsgnode example to a more fitting nameLaszlo Agocs2019-09-129-7/+7
| | | | | | | | | | | | | | It shows QQuickFramebufferObject. "Texture in QSGNode" is ambiguous as it suggests another type of use case (where an existing texture is imported and used with the QQ scene - without rendering to it). This would conflict with upcoming future examples, so rename to fboitem, which is what this example is about. The link from examples.qdoc is already using the fitting title so that will just work. Change-Id: Ide7a563398a4b464c55f14e10fa9386432b3d06d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix gcc warnings in vulkanunderqml exampleLaszlo Agocs2019-09-111-4/+4
| | | | | Change-Id: Iea81662f39d2a128cea0e83a766395e0fb1e9896 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Clarify docs and comments regarding under and overlaysLaszlo Agocs2019-09-082-0/+10
| | | | | Change-Id: I8973798996b6c775f425819af1d6a09f1773a9dc Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add metaltextureimport exampleLaszlo Agocs2019-09-0811-1/+878
| | | | | Change-Id: I499c21083faf6096a0dc3b8ee5682dd5cbcd3ce7 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rendernode example: Prevent gui-render thread data raceLaszlo Agocs2019-09-089-81/+114
| | | | | | | | By taking things like the item width and height in updatePaintNode() (while gui is locked). Change-Id: I840c6c858a0478eb6ceb09653fd1e033cb54372d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make vulkanunderqml work and update docsLaszlo Agocs2019-09-081-5/+14
| | | | | | | | | | | | | | | What we are doing for now is setting ExternalContentsInPass always. This way vulkanunderqml works as expected. For applications that do not integrate external rendering this means that there is now an additional secondary command buffer per render pass, but we can live with this for now. Later (Qt 6) there should be a way to declare this (that the application will want to issue native rendering stuff) up front in QQuickWindow or somewhere. Change-Id: I736741f9b0eee2f8295b046bacdce862e6a546f5 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add vulkanunderqml exampleLaszlo Agocs2019-09-0814-9/+952
| | | | | Change-Id: I61e8b50f560d1f4c68731fb19eb13071992040c9 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rendernode example: Add support for MetalLaszlo Agocs2019-08-229-1/+513
| | | | | | | | | | | | Plus clarify QQuickWindow::begin/endExternalCommands() in combination with QSGRenderNode in the docs. As the example demonstrates, calling these functions is not necessary within render() of a render node. Also fix an issue with resetting the scissor in the renderer after calling render() of a QSGRenderNode. Change-Id: If8c2dab38d62aa444266d37901f062a51e767f68 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Add missing scenegraph example docsLaszlo Agocs2019-08-2212-1/+320
| | | | | Change-Id: I72e18136a26cdfb52f204ce7d0491d14411956a4 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Implement QSGRenderNode for the rhi pathLaszlo Agocs2019-08-224-31/+104
| | | | | | | | | | | | | | The documentation is also refined and extended. Revise the rendernode example as well: make it possible to test and demonstrate both scissor and stencil based clipping. An implementation of the triangle for another graphics API should follow in a separate patch at a later point. For now only OpenGL is supported in combination with the RHI. Change-Id: I7ef9f6c6e0b44f1bdf44c9266ea3fa4736367a5d Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Make openglunderqml functional with and without the rhiLaszlo Agocs2019-07-043-29/+37
| | | | | | | | | | It has to be written following the new split approach (beforeRendering for resource setup, beforeRenderPassRecording to issue the actual underlay draw calls), but it will then work both with and without QSG_RHI=1. Change-Id: I9b7b35434aa0caec543cae268064b2684256382d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add the graphics api independent scenegraph portLaszlo Agocs2019-07-0422-6/+1491
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Opt in via environment variables: QSG_RHI=1 -> enable using QRhi instead of GL QSG_RHI_BACKEND -> set to vulkan, metal, d3d11, gl to override the default (the default is d3d11 on Windows, metal on Mac, gl elsewhere) Or force a given rhi backend via the existing QQuickWindow::setSceneGraphBackend(). Otherwise the default behavior is the same as before, the rhi code path is never active by default. -no-opengl builds are supported in the sense that they work and default to the software backend. However, the rhi code path cannot currently be used in such builds, even though QRhi from qtbase is fully functional with Vulkan, D3D, or Metal even when qtbase was configured with -no-opengl. This cannot be utilized by Quick atm due to OpenGL usage being all over the place in the sources corresponding to the default backend, and those host the rhi code path as well. This will be cleaned up hopefully in Qt 6, with the removal all direct OpenGL usage. Other env.vars.: QSG_RHI_DEBUG_LAYER=1 -> enable D3D debug or Vulkan validation layer (assuming the system is set up for this) QSG_RHI_SHADEREFFECT_DEBUG=1 -> print stuff from ShaderEffect QSG_SAMPLES=1,2,4,... -> MSAA sample count (but QSurfaceFormat works too) QT_D3D_ADAPTER_INDEX=0,1,... -> D3D adapter index QT_VK_PHYSICAL_DEVICE_INDEX=0,1,... -> Vulkan physical device index QSG_RHI_UINT32_INDEX=1 -> always use uint index data (both merged/unmerged, convert when needed - with some rhi backends this is implicit) QSG_RENDER_LOOP -> to override the render loop as usual. The default with RHI is threaded for Metal, threaded for Vulkan on Windows, basic for Vulkan on Linux and Android (to be checked later), while the existing rules apply for OpenGL. Not supported when running with QRhi: - particles - compressed atlases (though this is transparent to the apps) - QSGRenderNode - QQuickRenderControl - QQuickFramebufferObject - certain QQuickWindow functionality that depends directly on OpenGL - anisotropic filtering for textures - native text may lack some gamma correction - QSGEngine applicability unclear - some QML profiler logs may be incorrect or irrelevant Change-Id: I7822e99ad79e342e4166275da6e9e66498d76521 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* use the override keyword consistently and correctly (clang-tidy)Shawn Rutledge2018-02-277-22/+22
| | | | | Change-Id: If9e28d143f8cba3df3c757476b4f2265e2eb8b2a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* init variables where they are declared when possible (clang-tidy)Shawn Rutledge2018-02-262-8/+8
| | | | | | | | clang-tidy -p compile_commands.json $file -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' -header-filter='qtdeclarative' -fix Change-Id: I705f3235ff129ba68b0d8dad54a083e29fcead5f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-266-20/+20
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-241-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4compileddata_p.h src/qml/debugger/qqmlprofiler_p.h src/qml/jsruntime/qv4engine.cpp src/qml/memory/qv4mm.cpp src/qml/qml/qqmlcomponent.cpp src/qml/qml/qqmlobjectcreator.cpp src/qml/qml/qqmlobjectcreator_p.h src/qml/types/qqmldelegatemodel.cpp src/quick/items/qquickitem_p.h src/quick/items/qquickwindow.cpp tests/auto/quick/touchmouse/BLACKLIST tests/benchmarks/qml/holistic/tst_holistic.cpp Change-Id: I520f349ab4b048dd337d9647113564fc257865c2
| * threadedanimation: fix custom item animation when in a QQuickWidgetMitch Curtis2017-12-201-2/+5
| | | | | | | | | | | | | | | | | | As with 64a01ff5b5d1eaadb1e60013673ac25459b79e14 in qtquickcontrols2, we ensure that custom scenegraph item animations still run if within a QQuickWidget. Change-Id: I3630ee34c039420640000c9a58ed1ec186bbe82c Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Update to new QRandomGenerator APIThiago Macieira2017-11-032-6/+6
| | | | | | | | | | Change-Id: I69f37f9304f24709a823fffd14e676c097712329 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-2449-154/+574
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlimport.cpp src/qml/qml/qqmlimport_p.h src/qml/qml/qqmltypenamecache.cpp Done-with: Ulf Hermann<ulf.hermann@qt.io> Change-Id: I41ba7a592b2659ddf53da6952ea3b456a7bba319
| * Fix example code to always use BSDKai Koehne2017-10-184-12/+52
| | | | | | | | | | Change-Id: I1370ad883bb9ad821c7f1f5ac5092e9040ddc2e9 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * Fix outdated FDL license headerKai Koehne2017-10-177-34/+34
| | | | | | | | | | Change-Id: I76dccf547de40b5e72fd7abaa062fa96cb2c118a Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * Fix outdated BSD license headerKai Koehne2017-10-1738-108/+488
| | | | | | | | | | Change-Id: Icc08925454445fc9497fb3bfd2c26efe90605983 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | Qt Quick examples: Introduce QCommandLineParserFriedemann Kleint2017-10-181-1/+15
| | | | | | | | | | | | Task-number: QTBUG-60630 Change-Id: Iaf24e09fdec92f8af495a1288685f266c39be4a7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Use QRandomGenerator instead of q?randThiago Macieira2017-08-232-6/+8
| | | | | | | | | | Change-Id: Icd0e0d4b27cb4e5eb892fffd14b5285d43f4afbf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devSimon Hausmann2017-08-181-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qqmltypecompiler.cpp src/qml/jsruntime/qv4qmlcontext.cpp src/qml/jsruntime/qv4qobjectwrapper.cpp src/qml/qml/qqmlcustomparser.cpp src/qml/qml/qqmlimport.cpp src/qml/qml/qqmlimport_p.h src/qml/qml/qqmlmetatype.cpp src/qml/qml/qqmlmetatype_p.h src/qml/qml/qqmltypenamecache.cpp src/qml/qml/qqmltypenamecache_p.h src/qml/qml/qqmltypewrapper.cpp src/qml/qml/qqmltypewrapper_p.h src/qml/qml/qqmlvmemetaobject.cpp src/qml/util/qqmladaptormodel.cpp Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
| * Use QSharedPointer::create() moreMarc Mutz2017-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | This is the result of running the (experimental) clang-tidy check qt-modernize-qsharedpointer-create Discarded changes: none. Change-Id: I385c99af3822bc478d94a87679dfafde3ded504e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-07-041-1/+1
|\| | | | | | | | | | | | | | | Conflicts: .qmake.conf src/quick/doc/src/qmltypereference.qdoc Change-Id: Ia58f1c5a98309c32ef8d8e5c893faf261215f19f
| * Fix GCC 7 warnings in examplesFriedemann Kleint2017-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | plugin.cpp: In member function 'virtual void MinuteTimer::timerEvent(QTimerEvent*)': plugin.cpp:85:28: warning: ignoring return value of 'QTime QTime::addSecs(int) const', declared with attribute nodiscard [-Wunused-result] time.addSecs(60); main.cpp: In function 'int qMain(int, char**)': main.cpp:71:1: warning: no return statement in function returning non-void [-Wreturn-type] Task-number: QTBUG-60630 Change-Id: I0c0002533aa28c480a4d9eb45856dd10753d2476 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge branch 'wip/scenegraphng' into devLaszlo Agocs2017-06-191-3/+4
|\ \ | | | | | | | | | | | | | | | Say hello to Shape. Change-Id: I1093feee4acc375e62bae1d351db0a7969a536d0
| * \ Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2017-04-251-3/+3
| |\ \ | | | | | | | | | | | | Change-Id: If2e7c1cf0f1522f6052bbc3e3636ef62bef1b4db
| * \ \ Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2017-01-231-1/+1
| |\ \ \ | | | | | | | | | | | | | | | Change-Id: I762e578aaf14a77efa26ce3fda2abb0e335003ea
| * | | | software backend: Fix clipping of QSGRenderNodesLaszlo Agocs2016-12-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I27aa5f94165fb07807d2bb711d81eade552b9f76 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | | | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-152-5/+5
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4codegen.cpp Change-Id: I3c41b9fc9ba7d41741e4dd400402ae80dd7726d9
| * | | | Fix use of Qt namespaces in examplesKai Koehne2017-06-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | | Fix building examples with namespaced QtKai Koehne2017-06-081-2/+2
| | |/ / | |/| | | | | | | | | | | | | | Change-Id: I065715a523028a91ee3a841140734ad6eba240c2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Be (somewhat more) consistent about the value of piEdward Welbourne2017-06-146-7/+7
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 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>
* | | examples: Remove some unnecessary (and non-ideal) use of internal APIRobin Burchell2017-04-211-3/+3
|/ / | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-141-1/+1
|\ \ | |/ |/| | | | | | | | | Conflicts: .qmake.conf Change-Id: I9d87ed86e95b5901a86cc3aa65d7ac39b0b708c2
| * graph example: Fix MSVC warning about truncation of 'double'Friedemann Kleint2017-01-101-1/+1
| | | | | | | | | | | | | | | | graph.cpp(105): warning C4305: 'argument': truncation from 'double' to 'float' Change-Id: I644dec9be8aeb1837a2b7402f7ab7c3b3beb7e1b Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-144-6/+5
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp src/qml/qml/qqmlimport.cpp src/quick/items/context2d/qquickcontext2dtexture_p.h tools/qmleasing/splineeditor.h Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
| * examples\..\scenegraph.pro: Remove duplicate entry textureinsgnodeFriedemann Kleint2016-12-011-1/+0
| | | | | | | | | | | | | | | | | | | | Fixes build warnings: Cannot add commands to previously defined target sub-textureinsgnode-qmake_all. Cannot add commands to previously defined target sub-textureinsgnode. Cannot add commands to previously defined target sub-textureinsgnode-make_first. Change-Id: Ieaa8b688fa112d42efa05721ff3bfe251036a69b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Get rid of most QT_NO_FOO usagesLars Knoll2016-11-293-5/+5
| | | | | | | | | | | | | | | | Instead use QT_CONFIG(foo). This change actually detected a few mis-spelled macros and invalid usages. Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Enable shader disk cache in Qt QuickLaszlo Agocs2016-11-273-24/+20
| | | | | | | | | | | | Change-Id: I14ee97ee75664c5dfcd229a5be2be6294c936b2c Task-number: QTBUG-55496 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-236-25/+25
|\| | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4object_p.h Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
| * rendernode example: do not rely on build-time shader compilationLaszlo Agocs2016-11-225-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | There is no public intrastructure for this. Relying on the internal qmake rule in qtdeclarative is wrong as it is not meant for public consumption and is not available in out of tree examples in the installed Qt anyway. Instead, ship the bytecode for now. Task-number: QTBUG-56327 Change-Id: I19327aa880ad573560d1e9376f36c67aa509b51a Reviewed-by: Andy Nichols <andy.nichols@qt.io>