summaryrefslogtreecommitdiffstats
path: root/src/api
Commit message (Collapse)AuthorAgeFilesLines
* Add missing signal documentationTomi Korpipää2020-04-281-0/+16
| | | | | Change-Id: Ie3dec5105059cbbfe1bf104dac4458020e75538b Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Document QQuickImageProvider usageJere Tuliniemi2020-04-271-0/+24
| | | | | | | Task-number: QT3DS-4049 Change-Id: I655de11b904a8828d7c428f91c0874e74106fdf5 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add support for skipping rendering framesKaj Grönholm2020-04-166-0/+69
| | | | | | | | | | Add skipFramesInterval property into Q3DSViewerSettings. This property can be used to limit the rendering framerate, decreasing the CPU/GPU usage. Task-number: QT3DS-4088 Change-Id: Icbf5cf208b663dbef1df6096994b94686571e357 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Add support for progressive stereoscopic renderingKaj Grönholm2020-04-087-0/+71
| | | | | | | | | | | | In progressive mode, single eye is rendered per frame. So full rendering of stereoscopic view takes 2 frames. This mode can be enabled from Q3DSViewerSettings, and for viewer from menu or with "--enableprogressivestereo" command-line parameter. Task-number: QT3DS-4076 Change-Id: Ie69e37da028743164b959036136485b88c61b009 Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Shader caching improvementsMiikka Heikkinen2020-02-255-17/+168
| | | | | | | | | | | | | | | | | | Added shader cache load error generation to some cases where it was missing. Properly pass the error to surface viewer. If there was a cache load error, allow exporting the generated cache. Added overloads to generate shader cache with specified compression level. Change-Id: I06d56114918ada23d46474e9466f6031ad8037e2 Fixes: QT3DS-4071 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Do not cache datainput value if presentation is not readyJanne Kangas2020-02-211-0/+7
| | | | | | | | | | | This fixes the case of client (ineffectively) setting a value before presentation is ready, and then trying to set same value later again. This causes discard when the the incoming value is compared to the cached value. Task-id: QT3DS-3987 Change-Id: If41e0140a26514e5f5cf0f427d6c3d59090e2d43 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Register runtime versionsTomi Korpipaa2020-02-211-0/+4
| | | | | | Fixes: QT3DS-4068 Change-Id: I561413bd24a1401e36373aa88399ddf95c6af623 Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add size and format to textureid queryJanne Kangas2020-02-112-0/+21
| | | | | | | | | | | Returns texture size and format for layer and material textures. Add corresponding test. Task-id: QT3DS-4005 Change-Id: I773715712dc78cf511f6c4d0095f5491834df311 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Implement shader cache loading error handlingAntti Määttä2020-02-104-0/+6
| | | | | | | Task-number: QT3DS-4040 Change-Id: Ie5f8284ab76cd4aa5f3ff0701457f4ef84c3e215 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Update and fix documentationJanne Kangas2020-02-068-75/+80
| | | | | | | | Also move d_ptr variable to private in Q3DSDataInput. Task-id: QT3DS-4050 Change-Id: I91ded90a413e0e9f78b0d866823a686357e4b908 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Don't render when scene is not changingAntti Määttä2020-01-222-5/+10
| | | | | | | | | | Reduce CPU and GPU load by checking if the scene has changed and render only if it has. Task-number: QT3DS-4042 Change-Id: I54e447760f04fdad8d64319f326245175b471331 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Harmonize slide indexing between Q3DSPresentation and Q3DSSceneElementJanne Kangas2020-01-212-15/+19
| | | | | | | | | | | Make SceneElement slide indexing follow the original NDD scheme where slide index 1 corresponds to the first slide. (Note that this requires changes to applications relying on SceneElement client API.) Fix autotests. Add a remark about indexing in docs. Task-id: QT3DS-4034 Change-Id: I12328830193a148e2198ad74c450163e9e4600c9 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add C++ API method to export and import shader cache as QByteArrayMiikka Heikkinen2020-01-133-14/+76
| | | | | | Change-Id: I5492e2590195b07e0e582e48a30d87194b372d3d Fixes: QT3DS-4036 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Minor perf logging tweakKaj Grönholm2019-12-131-3/+5
| | | | | | | | | | | Show more clearly total runtime & application startup times. When QT3DS_ENABLE_PERF_LOGGING isn't defined, only these total times are shown. Task-number: QT3DS-4028 Change-Id: I1d9fe8bab5ed32584b2ad1c09b14cb01d25dc82f Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Document usage of QT3DS_ENABLE_PERF_LOGGINGKaj Grönholm2019-12-121-0/+43
| | | | | | | Task-number: QT3DS-4025 Change-Id: If2e3eadd73cf76457a06aaab224843767a31ecff Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix matteEnabled viewer settingKaj Grönholm2019-11-291-1/+1
| | | | | | | | | By accident it kinda worked as boolean false = 0 so constructor QColor(QRgb color) was used for setMatteColor(). Task-number: QT3DS-4013 Change-Id: I1194f5044818ef2d97be5ca3538e2640e5f5dbd2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Allow setting timeline value when element is about to activateAntti Määttä2019-11-203-4/+23
| | | | | | | | Task-number: QT3DS-4001 Change-Id: I9fbb1367999d2a3e3bea6520f9e59a820ef50c28 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Doc: Add links to examplesMats Honkamaa2019-10-211-0/+10
| | | | | | Task-number: QT3DS-3960 Change-Id: I74a48bb170aa15a454ddd285c10ddb5c4f2baf62 Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add anaglyph stereoscopic modes into opengl runtimeKaj Grönholm2019-10-112-2/+12
| | | | | | | | | | | Implement also anaglyph red-cyan & green-magenta stereoscopic modes for opengl runtime. APIs for C++ and QML. Add options into viewer. Task-number: QT3DS-3981 Change-Id: Idb9f659b3799e954253e37045c1a3b2a55fb2779 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Use logging categories with all debug messagesAntti Määttä2019-10-071-1/+2
| | | | | | | | Task-number: QT3DS-3712 Change-Id: Ibb751d2ad462685f0ba39cef6a4d932708faac57 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Bump qml module versionTomi Korpipaa2019-10-018-15/+114
| | | | | | | | | | | Revision new APIs: asyncInit, shaderCache, exportShaderCache, stereMode, stereoEyeSeparation, textureId, and addImageProvider. Also fixed missing array in qt_attribution.json Task-number: QT3DS-3963 Change-Id: I3fc6ac38ff6f524a5268ad4706f4d0edcc0af6f3 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add afterRendering signal to the Q3DSSurfaceViewerJere Tuliniemi2019-09-302-0/+3
| | | | | | | | | This signal is sent after rendering but before the frame swap. Task-number: QT3DS-3962 Change-Id: I7501df1ad2590da75fac2a9eb3e626ecaffc0158 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Provide texture ids through the C++ APIJere Tuliniemi2019-09-302-0/+17
| | | | | | | | | | | | | | Image, subpresentation and layer texture ids are now provided by the presentation via an element path. The cached layer texture id is also stabilized. Instead recreating it every frame, the last effect is just rendered to the premade texture. For each intermediate effect, a new texture is still created. Task-number: QT3DS-3959 Change-Id: I2ad2b81be9ae61373a0bfd963501823f012e9fcc Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Support QQuickImageProvider in the runtimeJere Tuliniemi2019-09-175-0/+29
| | | | | | | | | | | | | | | With QQuickImageProvider the user can make a callback method returning a custom QPixmap or QImage to the engine without accessing the filesystem. Texture sourcepaths are set using an image url scheme. For example "image://colors/blue" where "image://" tells the runtime to look for an image provider, "colors" is the image provider id and rest are the image id the provider uses to create the image. Task-number: QT3DS-3761 Change-Id: I830649359f9969e957a972a0c08d0ede6e46ee78 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Implement shader cachingMiikka Heikkinen2019-09-1210-81/+364
| | | | | | | | | | | | Currently loaded shaders can now cached with an API call in either source code or binary format. It is necessary to do it that way as the shader cache can only be created in the target hardware. Task-number: QT3DS-3914 Change-Id: I094e8624943904c311ada2259a84b8c183f792f5 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Unify timeline unit to millisecondMahmoud Badri2019-08-262-3/+16
| | | | | | | | | | The studio and runtime had mixed timing units (seconds and milliseconds) . This commit unifies the timings to milliseconds. The values are however kept saved in the UIP file in seconds for backward compatibility and also cause it is more compact (ex: 1 vs 1000). Change-Id: Id3515ed90fdb8eb027c581aef9598b02b974a40e Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add support for stereoscopic renderingKaj Grönholm2019-08-236-0/+149
| | | | | | | | | | | Initial support for top-bottom and left-right stereoscopic rendering on OpenGL runtime. Add settings into viewer menu to control these. Task-number: QT3DS-3212 Task-number: QT3DS-3868 Change-Id: I5b22169fd407118998a43c1e601cb60b7e3fd6a8 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add docs for Q3DSSurfaceViewer::setQmlEngine/qmlEngine methodsMiikka Heikkinen2019-08-191-6/+8
| | | | | | | Task-number: QT3DS-3563 Change-Id: Ia19a15b5ffe00e5de7aa8e96136d150b4fbb7b22 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Clear the QQuickWindow background before renderingMiikka Heikkinen2019-08-192-5/+0
| | | | | | | | | | | Now that we support transparent scene backgrounds, we should not set the QQuickWindow::setClearBeforeRendering(false). This will also allow using Studio3D elements that do not cover the entire window. Task-number: QT3DS-3740 Change-Id: I8293a5384405d46f721747934d8cc6beeea23e64 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Check for datainput validity at setValueJanne Kangas2019-08-191-3/+7
| | | | | Change-Id: Ia54802faa760021e3afabc977f6d0bdcee31deca Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Discard datainput set value if it is the same as the last committed valueJanne Kangas2019-08-155-24/+55
| | | | | | | | | | | | | | | | | Store the latest value that was committed (sent out to runtime engine) and only create setValue call when the incoming value is actually different. Combined with batching, this should eliminate most performance impacts from client-side API spamming. Also, add "force" parameter to setValue C++ interface. It can be used to force a value change to runtime engine even if the value would be otherwise discarded. Change-Id: Iedd4df89a0d45b79f306dfd384745a94df8f26be Task-id: QT3DS-3861 Task-id: QT3DS-3842 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix datainput value setter for Q3DSPresentationJanne Kangas2019-08-144-2/+12
| | | | | | | | | Also set datainput value and dirty flag in Q3DSPresentation so that both are properly set for value changes from Q3DSDataInput and Q3DSPresentation APIs both. Change-Id: Ic7b2aa56a68bbe253de806051a5ab1201d5bec72 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Don't share surface between async init contextsMiikka Heikkinen2019-08-144-9/+29
| | | | | | | | | | | Some platforms can't handle sharing a surface between multiple active OpenGL contexts, so create a new QOffscreenSurface for asynchronous initialization purposes. Task-number: QT3DS-3862 Change-Id: I76f59bb81417c4522d40403dd5597add270dd5fc Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Batch setDataInputValue calls also on C++ sideJanne Kangas2019-08-137-26/+41
| | | | | | | | | | | | | | Collect/cache all set value calls to a batch within a frame, effectively discarding all except the most recent value(s) within a frame period. This decreases the performance impact of high-frequency value setter calls from external sources. Also, remove deprecated functionality from internal datainput setValue interface. Change-Id: I4165c97f96a4fe25796eb27d53802fbee507aa6c Task-id: QT3DS-3857 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Make runtime initialization optionally not block QMLMiikka Heikkinen2019-08-138-37/+301
| | | | | | | | | | | | | | | | | Runtime initialization made non-blocking by offloading it to a worker thread. This causes various object thread affinities in runtime to be incorrect. This is relevant at least for the singaling, where having affinity to non-existing initialization thread would cause signals to not be delivered. To work around this issue, signal proxy thread affinitions and signal connections are set after initialization has completed. Similarly, behavior script QML engine initialization is deferred so that it can be done in correct thread. Task-number: QT3DS-3805 Change-Id: Ie8b64f4ecd93e4c422e369e625080652d67bde27 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Batch datainput value changes per-frame for QML contextJanne Kangas2019-08-098-3/+61
| | | | | | | | | | | Group all changes in datainput values on QML side together and send a single per-frame command. This ameliorates the performance cost of frequent value updates, especially for projects with large amount of datainputs. Change-Id: Ib398f405dedb50ad3f5429f42024b3f490114dab Task-id: QT3DS-3759 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Initialize runtime after first Quick frame has been shownMiikka Heikkinen2019-08-072-4/+30
| | | | | | | | | | | This allows at least showing something on the screen while the presentation loads. The render thread is still blocked, so only a static QML scene can be shown. Task-number: QT3DS-3805 Change-Id: Ib0994b739506a445833b5fa5b39f2f5322dd17d2 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix simpleqml exampleAntti Määttä2019-06-284-8/+22
| | | | | | | | | | | | | - Reset source when window changes because it will cause new renderer to be created and it would not have proper source without it. - Update the example codes and resources - Change how the init timer is initialized to get proper result each time the presentation gets reloaded. Task-number: QT3DS-3681 Change-Id: I64d4f6980b87b6efcbb906bb4ad241956ce0a7bc Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Fix link to third-party licensesMats Honkamaa2019-06-271-1/+2
| | | | | Change-Id: I5af22419ff45bb4ddea8f54aa43ed08e5a69b944 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Add plugins.qmltypes filePasi Keränen2019-06-271-0/+438
| | | | | | | Task-number: QT3DS-3716 Change-Id: I10d11c66b703aa3f664a2918f7ee04d2208b9acf Reviewed-by: Jari Karppinen <jari.karppinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix broken link in html sidebarMats Honkamaa2019-06-261-1/+1
| | | | | Change-Id: I60c713eb3a82a2853cd35956c29633903652e115 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Add documentation for presentation signalsMats Honkamaa2019-06-251-7/+52
| | | | | | | | | | Added documentation for the last signals missing documentation. Mainly copy and paste from Qt3D Runtime but some re-writing. Task-number: QT3DS-3562 Change-Id: I7f2c19a88921f47ea6d1ede3577595522a2c2b88 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add Q3DSStudio3D::viewerSettings() documentationMats Honkamaa2019-06-251-1/+4
| | | | | | | Task-number: QT3DS-3566 Change-Id: Ibac69008d5d8cc1f495d71cedcdc61af1aaa7bf7 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Remove obsolete commentMats Honkamaa2019-06-251-2/+0
| | | | | | | | Removing todo comment which is already done. Task-number: QT3DS-3534 Change-Id: Id76547b872e1635f39a26f238e2d667c05447c59 Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>
* Add runtime build instructions to docsMats Honkamaa2019-06-2417-0/+360
| | | | | | | | Task-number: QT3DS-3691 Change-Id: Ib1239fd53f6b48963109c6e9d5b7a10e1c075795 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>
* Doc: Update OpenGL runtime project nameTopi Reinio2019-06-215-26/+24
| | | | | | | | | .qch generation fails unless the project name matches with the target directory name. Change-Id: I391c386afd253dfaf81c2a888d9f0931dff93a83 Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io> Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Add matteEnabled to viewer settingsAntti Määttä2019-06-206-3/+65
| | | | | | | | | | | | | The flag is required to disable clearing to black in qml applications, which support transparency. Task-number: QT3DS-3689 Task-number: QT3DS-3542 Change-Id: I27b1e07a394be30f0fb4841c69555dde5697a5cf Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Jari Karppinen <jari.karppinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>
* Initial OpenGL runtime documentation structureMats Honkamaa2019-06-1931-229/+1935
| | | | | | | | | | Copied from Qt3D runtime docs with some modifications. Task-number: QT3DS-3561 Change-Id: I67fc9bc59290b34e788cf4a79676c9e04e634979 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Pasi Keränen <pasi.keranen@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Add Q3DSGeometry documentationMiikka Heikkinen2019-06-131-0/+212
| | | | | | | | | | | Task-number: QT3DS-3615 Change-Id: If742735c28ab07426819951620c571f59fe17a76 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Remove duplicate documentation from datainputJanne Kangas2019-06-141-44/+27
| | | | | | | Change-Id: Ie23dbee91d129a983d7bfd2700a5fa5a851be641 Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io> Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>