summaryrefslogtreecommitdiffstats
path: root/src/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Fix component visibility when changing slidesTony Leinonen2021-03-302-6/+25
| | | | | | | | | | | | GetActive did not get updated fast enough and returns wrong active state changing it to IsExplicitActive fixes this situation as slide switches change objects ExplicitActive state and can be accessed instantly. Task-number: QT3DS-4225 Change-Id: I2945ea74f1921c6599230ab6acbc5b17065a5405 Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix time calculation with data inputsAntti Määttä2021-03-246-13/+19
| | | | | | | | | | The time needs to be calculated after the time policy has been initialized. Task-number: QT3DS-4218 Change-Id: I62c215cbbf8ca6c8ed8881817e9e9a84415b8924 Reviewed-by: Tony Leinonen <tony.leinonen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix component activation after slide changeAntti Määttä2021-03-232-4/+3
| | | | | | | | | | | Fix component activation after slide change when the component parent was activated by data input. Data input activated nodes needs similar handling as user activated. Remove previous change since it did not affect the situation. Task-number: QT3DS-4217 Change-Id: I5ff5f5cc2d693987ef61bb0a8f9cec22ec8507f8 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix autotests after latest changesAntti Määttä2021-03-227-20/+40
| | | | | | Task-number: QT3DS-4221 Change-Id: I43947446a9ea28e55a834541a44dc6ca971d282a Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Remove overriding codeTony Leinonen2021-03-192-9/+1
| | | | | | | | | | | | | ComponentManager code was overriding gotoSlide data which caused problems with slide changes. If check was forcing queued slide changes to slide 1 when object was first activated. Task-number: QT3DS-4221 Change-Id: I614fd5e50dc96db0930de860a90a5f99656293f3 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Calculate newTime when commands are being processedTony Leinonen2021-03-192-10/+12
| | | | | | | | | | | newTime was calculated too early and the object did not have time to switch slides and have correct information. Calculating newTime at a later stage when the object has had time to switch slides. Task-number: QT3DS-4221 Change-Id: If04a29278c6d97e550ecb7f2e5975d02abcd01d4 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Apply queued changed when object is activeTony Leinonen2021-03-191-1/+3
| | | | | | | | | | | | Queued changes were only applied when the object was first activated. Moving the function call outside if applies changes when the item is active. Task-number: QT3DS-4221 Change-Id: I9bf7a5f262e08a3e2e290106f1dfcfd791064d8a Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add component to dirty list when switching slidesTony Leinonen2021-03-021-0/+4
| | | | | | | | | Components are not being updated after slide switch. Adding them to the dirty list for slide change fixes this. Task-number: QT3DS-4217 Change-Id: I9f6f2d9c23548156edbc790d14e99e0e43e5d8ad Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Render last animation frameTony Leinonen2021-02-251-1/+4
| | | | | | | | | | If timer reached the end of the animation the last frame wouldnt get rendered. Adding a last frame timer variable will render the last frame for the first time. Task-number: QT3DS-4219 Change-Id: I882aca4faa8e37d63bb8fcbbb214beb958c4e2d8 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix if structureTony Leinonen2021-02-181-7/+5
| | | | | | | | | | Last structure did not work exactly as intented. Task-number: QT3DS-4214 Change-Id: I5b691b5385c81eff7b6134268918b3c7b84a29da Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add case for datainput between slide changesTony Leinonen2021-01-262-8/+15
| | | | | | | | | | When a slide and objects properties are changed in the same frame the property changes are not getting applied. Task-number: QT3DS-4214 Change-Id: Iaa0a71939b1f2f8506642208735edcd02807f09b Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Allow changing some attributes when element is inactiveAntti Määttä2020-10-201-1/+12
| | | | | | | Task-number: QT3DS-4192 Change-Id: I83f4f651ecf9858595d45f6b070da1ff849ae08e Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix custom materials now showing before reloadAntti Määttä2020-10-141-1/+1
| | | | | | | | | Use property name instead of image id, since the id is only available after serialization. Change-Id: Ie00bac32e61607ce481e5eb74a9e61c2d4fd317e Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix issues in dynamic object texture changeAntti Määttä2020-10-143-2/+31
| | | | | | | | | | | | | -Add backwards compatibility with older presentations. -Get dynamic object with instance handle. -Set empty string to texture if it is not a reference. -Create images for dynamic custom material textures. -Add transform to effect textures and fix flipping the uv coordinates. Task-number: QT3DS-4063 Change-Id: I5c72087e57d51679b321f017367cf93e56a32786 Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Implement image filteringAntti Määttä2020-10-143-0/+6
| | | | | | | | | | This is needed to support custom material texture filter modes when they are being implemented using images. Task-number: QT3DS-4183 Change-Id: I9f16a9347379872a8f04ebdd08785df345939a70 Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Use images with dynamic object texturesAntti Määttä2020-10-142-0/+16
| | | | | | | Task-number: QT3DS-4063 Change-Id: Ia07f21be65ebda9733773504eb2e0ddce4009fab Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Split SDynamicObject from graph objectsAntti Määttä2020-10-141-2/+3
| | | | | | | | Add SDynamicGraphObject and derive SEffect and SCustomMaterial from it. Change-Id: I97fc561069d72ab550eebcad76c240a7fb5ad142 Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Don't switch deactivating component slideKaj Grönholm2020-10-122-1/+12
| | | | | | | | | | When component is about to become deactivated, don't proceed with slide switching as that may cause deactivation not proceeding. Task-number: QT3DS-4169 Change-Id: I1157f8a76afbc4d3592486a05fa2eb7607ae55ea Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Improve attributes handlingKaj Grönholm2020-10-083-0/+22
| | | | | | | | | Add some missing attributes and disable node OnSpecificPropertyChange assert same way it is disabled for other objects. Task-number: QT3DS-4180 Change-Id: I9966fb98129ed5c8455484e705f7f89a68a530b7 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix crash when slide change occursAntti Määttä2020-10-061-21/+18
| | | | | | | | | | The buffer manager needs to use resolved paths for each image loading function. Also convert to use QString to avoid unnecessary string conversions. Also fix image loading task to use resolved paths. Task-number: QT3DS-4177 Change-Id: I79fae56a8f49ccbdcaed1fa9eb9a9d875583d0dd Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Revert "Fix slide activity changes"Kaj Grönholm2020-10-051-5/+0
| | | | | | | | | This reverts commit 5f8471a92868a06298ef0e0f1047d20491ac7f46 as it causes issues with existing projects. Change-Id: I903b104c325323d1b6fb53c1313921ee593c156b Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix slide activity changesKaj Grönholm2020-10-021-0/+5
| | | | | | | | | | | When doing multiple slide switches at the same frame, activity (visibility) didn't update correctly because even empty elements caused activity changes. Task-number: QT3DS-4169 Change-Id: Ib2dec31ee6b33487261b73cf5550a090ce91513e Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix incorrect data input behaviorTony Leinonen2020-09-283-3/+15
| | | | | | | | | | | | | | When attempting to change time check if the parent becomes active. If an object is inside a group or is a child object the parent is the one which becomes active. Remove the first activity check. This is already being checked once after. Checking too early doesnt allow moving objects and changing slide in the same frame. Task-number: QT3DS-4166 Change-Id: I5f64828605c11756e61026ffc60a3b73b3a1f197 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Prevent duplicates in searchPaths and reverse itTomi Korpipaa2020-09-281-3/+4
| | | | | | | | | | | | The first 3 paths in the searchPaths are for finding the other things we need to search for, the last ones are for source paths. Reversing the order drops the required search count in a usual case from 4 attempts to 1 or 2. Task-number: QT3DS-4172 Change-Id: I0d7665566be6b8a9d5e7b918f7596f70126ad958 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* Unify source path usage in runtimeAntti Määttä2020-09-241-11/+15
| | | | | | | | | | | There are several fixes done to source paths before their usage, but they are done in different places. Put these all into function and call this function before using the source paths. Task-number: QT3DS-4162 Change-Id: I0d3e3fd2db0cb11c6e9cb28fb3054568884059db Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* Add support for onActivate and onDeactivate ActionsKaj Grönholm2020-09-217-2/+38
| | | | | | | | | | | | | Add new Action types onActivate and onDeactivate. When assigned, these will get triggered at object timeline start and end times. Using these it is possible to trigger events at specific times during animation. Example and autotest case included. Task-number: QT3DS-4128 Change-Id: Ib973b479a1de47745089d41c5764c2a1747ec95e Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix performance timers compilationJanne Koskinen2020-08-171-1/+1
| | | | | | | | Add back the name for the argument. Fixes: QT3DS-4153 Change-Id: Ifee13fe048069298aeeda519c2bfd8ef15ffc6f5 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Allow getting texture id from subpresentation layerAntti Määttä2020-08-121-36/+51
| | | | | | | | | | | | | | | | | | The subpresentation layer textures are stored per instance basis so the getter needs to use the correct main presentation layer to get it. Getting the subresentation texture id from images already work by using "subpresentationId:elementPath" in the getter. For subpresentation layers the getter needs to specify also the main presentation layer using the subpresentation. The elementPath needs to be specified as elementPath::subpresentationId:elementPath. F.ex. "Scene.Layer2::subpres:Scene.Layer" Task-number: QT3DS-4127 Change-Id: Ifeb654838e6cc97ac8f95841e080e3c35fc76ad7 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix slide rollback when setting timeline valueJere Tuliniemi2020-07-231-5/+3
| | | | | | | | | The slide has to be rolled back so that elements from the slide don't stick around in the next one. Task-number: QT3DS-4146 Change-Id: I18dbf2b974fb55d4fe22b014c06f54f37df02e13 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix data inputs with delayed loadingv2.7.0-rc2Jere Tuliniemi2020-05-083-0/+18
| | | | | | | | | Initialize data inputs and outputs every time a presentation is loaded. Task-number: QT3DS-4105 Change-Id: If2e9a6d95cc40109cb48f4d4d8b5dc88f963fb74 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Fix activating child elements when di activatingAntti Määttä2020-05-041-7/+12
| | | | | | | | | | Time-activation is not done for child elements in all cases. Add check for it in the activation handler. Task-number: QT3DS-4100 Change-Id: Ib34777afc35db7a0ce6748da01e6feec1de37f5e Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* Add support for skipping rendering framesKaj Grönholm2020-04-161-2/+24
| | | | | | | | | | 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-081-6/+13
| | | | | | | | | | | | 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>
* Delayed loading: Load subpresentation with setAttributeJere Tuliniemi2020-03-262-1/+19
| | | | | | | | | | Trigger a load when changing the subpresentation attribute of a material. Also add the subpresentation to the activity list. Task-number: QT3DS-4090 Change-Id: Ief5c819bcf5cdf94702ba96e71491c8c898d02a6 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Make sure GoToTime works also when triggered at simultaneous activationJanne Kangas2020-03-255-9/+56
| | | | | | | | | | | Queue goto time command and skip rollbacking the newly activated slide in the case we receive both goto time and goto slide commands. Instead, go to specified time after the slide has been reaactivated (entered). Task-id: QT3DS-4001 Change-Id: I2dd8d6ec3a42dcd65f40adb7920b34183c50b062 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add dynamic layer resizingJere Tuliniemi2020-02-283-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a boolean property to layer that enables dynamic resizing. The screen space bounds of the layer content are calculated and the layer resized to fit the content and exclude empty space. Padding property is also added that pads the resized layer so that minimal changes to the content won't trigger another resize. Padding can be set by pixel amount or by percentage of the size. To provide accurate 2d bounds, each active objects bounds are projected separately to the screen. A boolean property to only project combined bounds is provided but lowers the accuracy while limiting projections to 8. Known issues: - Temporal AA doesn't work with resizing correctly - Temporal AA leaks GPU memory when resizing - Editor picking doesn't work correctly with dynamically resized layers - Render to viewport doesn't yet support resizing Task-number: QT3DS-4030 Change-Id: Ibc727e078129eee15021cc97105b4cdf9a5a3196 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Remove evaluator type datainput dead codeJanne Kangas2020-02-213-181/+0
| | | | | | | Task-id: QT3DS-3912 Change-Id: I76415b68bbe145bcc308263228358f69cac89c3c Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Add size and format to textureid queryJanne Kangas2020-02-112-0/+37
| | | | | | | | | | | 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-102-4/+10
| | | | | | | Task-number: QT3DS-4040 Change-Id: Ie5f8284ab76cd4aa5f3ff0701457f4ef84c3e215 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Merge branch '2.6'Antti Kokko2020-02-102-2/+2
|\ | | | | | | Change-Id: If10420b5b0ab59abb5238e0dddf903b98d8ccbd3
| * Fix crash in autotestv2.6.02.6Antti Määttä2020-01-302-2/+2
| | | | | | | | | | | | Task-number: QT3DS-4053 Change-Id: Ie0723839c5c56f6978ec7a4a1258acf311d89d57 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* | Load component subpresentation when neededJere Tuliniemi2020-02-061-4/+26
| | | | | | | | | | | | | | | | | | | | | | | | All components were iterated and included subpresentation loaded at the start. Now only components included in the master slide are loaded. Rest are loaded when the slide in which they reside is shown. Task-number: QT3DS-4057 Change-Id: I1e8f67f51fd452ac362c1020f7e9674bc86b7ec1 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* | Fix delayed loading data input crashJere Tuliniemi2020-02-051-1/+1
|/ | | | | | Task-number: QT3DS-4056 Change-Id: I4513214fa20e2c4b0e7a137fa97c648a644e0757 Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Optimize element attribute name hashingAntti Määttä2020-01-2218-301/+319
| | | | | | | 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-222-6/+9
| | | | | | | | | | 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>
* Implement culling mode for materialsAntti Määttä2020-01-213-0/+3
| | | | | | | | | | -Add culling mode for default material -Add Culling command to custom material. Task-number: QT3DS-1627 Change-Id: I519498ce4508c02527df628c36c0a62621e8e294 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Remove unused and duplicate codeAntti Määttä2020-01-203-213/+0
| | | | | | | | | -Remove tree traverse functions from actimation manager. -Remove duplicate element helper code. Change-Id: Ibf23c58755024a7374b8279861e4aad8fbcdd7c7 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Load referenced material assets upon useJere Tuliniemi2020-01-162-0/+8
| | | | | | | | | | | | | | | | | When using delayed loading, assets used by materials inside the material container are not loaded upon startup anymore. Instead the assets are loaded when entering the slide in which the material is referenced. This also fixes referenced materials that refer to an animatable material in another slide. Task-number: QT3DS-3100 Change-Id: If55c73e8f91389f3c47ae16357ebe6a473f43585 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add toggle for disabling ambient occlusionJanne Kangas2020-01-153-0/+3
| | | | | | | | Task-id: QT3DS-4032 Change-Id: I27c6c7ad2a66fac0b654002933fc3216ecf8879c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Implement ordered groupAntti Määttä2020-01-133-0/+4
| | | | | | | | | | | Add ordered property to group, which disables automatic depth sorting for that group and all it's children. The group as a whole gets sorted with other objects as if it was one object. Task-number: QT3DS-3820 Change-Id: Iea71917fc78f4c543aa944d851c77b6794bd7d80 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>