summaryrefslogtreecommitdiffstats
path: root/src/engine/Qt3DSRuntimeView.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix autotests after latest changesAntti Määttä2021-03-221-1/+1
| | | | | | Task-number: QT3DS-4221 Change-Id: I43947446a9ea28e55a834541a44dc6ca971d282a Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* add signal when renderer is drawingTony Leinonen2021-02-181-1/+2
| | | | | | | | | | | renderUpdate signal is emitted even if nothing is drawn, so add a new signal when renderer is actually drawing something to screen. Task-number: QT3DS-4211 Change-Id: I52d79c618850cc0f87fd9f4226187ed224d0b758 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* Add size and format to textureid queryJanne Kangas2020-02-111-0/+17
| | | | | | | | | | | 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-101-3/+6
| | | | | | | Task-number: QT3DS-4040 Change-Id: Ie5f8284ab76cd4aa5f3ff0701457f4ef84c3e215 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Optimize element attribute name hashingAntti Määttä2020-01-221-1/+1
| | | | | | | Task-number: QT3DS-4041 Change-Id: I64ccd129b12053b057e5e992d89a05a2bc6cd33d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Don't render when scene is not changingAntti Määttä2020-01-221-3/+5
| | | | | | | | | | 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>
* Fix SceneElement::currentSlideIndexJanne Kangas2020-01-131-20/+28
| | | | | | | | | | | | | Fixes issue of current slide change signals not working from subpresentations. (Does not touch indexing conventions in SceneElement or Presentation.) Task-ID: QT3DS-3015 Change-Id: I74ef95d72efa1fc75674081e242c9f5526decf77 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Minor perf logging tweakKaj Grönholm2019-12-131-8/+9
| | | | | | | | | | | 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>
* Improve perf logging #2Kaj Grönholm2019-12-091-2/+11
| | | | | | | | | | | | | | | Improve startup perf logging, including: - Move outputting startup perf logs into better place. Previously only part of the logs were printed as output happened too soon, now printing at first frame rendering. - Show also amount of calls and cumulative timestamps. - Improve log labels formatting. - Add more logging points into hot spots. Task-number: QT3DS-4021 Change-Id: I7db5a11ff10be1ccb691f82b10161e8ba7c316a6 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Improve perf logging & timersKaj Grönholm2019-12-031-0/+1
| | | | | | | | | | | | | | | | | OpenGL runtime contains perf timers but they are not documented so probably not much used. Switch to using QT3DS_PERF_SCOPED_TIMER macro instead of direct SStackPerfTimer usage. Then SStackPerfTimer debugs overhead can be fully removed when QT3DS_ENABLE_PERF_LOGGING is not defined (default). Print first frame render time when qt3ds.perf_info is on. Task-number: QT3DS-4021 Change-Id: Id11a1c5bb8bf24f545e9bceb333212f345b29bb7 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-301-0/+12
| | | | | | | | | | | | | | 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-171-0/+10
| | | | | | | | | | | | | | | 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-121-3/+5
| | | | | | | | | | | | 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>
* Make runtime initialization optionally not block QMLMiikka Heikkinen2019-08-131-5/+24
| | | | | | | | | | | | | | | | | 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>
* Fix simpleqml exampleAntti Määttä2019-06-281-1/+2
| | | | | | | | | | | | | - 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>
* Long live the slayer!Pasi Keränen2019-06-071-0/+862
Initial commit of OpenGL Runtime to repository. Based on SHA1 61823aaccc6510699a54b34a2fe3f7523dab3b4e of qt3dstudio repository. Task-number: QT3DS-3600 Change-Id: Iaeb80237399f0e5656a19ebec9d1ab3a681d8832 Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>