summaryrefslogtreecommitdiffstats
path: root/tests/auto
Commit message (Collapse)AuthorAgeFilesLines
* Update example UIPs versionsMahmoud Badri2019-05-176-6/+6
| | | | | | Task-number: QT3DS-3366 Change-Id: Ifcd328051eaf594a801db77497eca2482713469d Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Support alpha channel on color propertiesMahmoud Badri2019-05-022-10/+4
| | | | | | | | | | Layer backgrounds are to use the alpha channel. This is also implemented in the editor (and RT1). Also update the VignetteEffect.effect to work correctly with the vec4 vegnette color and removed 3 duplicated test checks. Change-Id: I709629855f3172d65f359525e90cd5c91000f548 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
* Fix EOS logic in the animatorChristian Strømme2019-03-201-0/+43
| | | | | | | | | | | | | The logic was broken and in some cases we would not detect that we reached the end e.g, when the local time was equal to the duration, in this case we ended up in a no-op situation and the slide state would not change and the timeChangeCallback would never be called, which meant that visibility wasn't updated as expected. Fixes: QT3DS-3080 Change-Id: Ic6dcfd08ef13a18b769cf5eea3113ec31b776d95 Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
* Update MetaData.xmlv2.3.0-beta2Miikka Heikkinen2019-03-011-1/+1
| | | | | | | | | Materials no longer have name property, the default value is obtained from MaterialBase. Changed the property parsing logic accordingly. Change-Id: I40653eeefcbeb1c4e293b75b328ebc4a66f2b2de Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add variant filteringPasi Keränen2019-02-0614-6/+519
| | | | | | | | | | | Add variant filtering to loading of presentations. [ChangeLog][QtStudio3D][Support for variants] Qt 3D Studio runtime now supports loading presentations containing variant tags. Task-number: QT3DS-2662 Change-Id: Id5637d23f5e9d178b8c40a3bb7c8b8950297548f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix and simplify the visibility updateChristian Strømme2019-01-281-9/+63
| | | | | | | | | Components should, once created, handle the visibility of it's own objects instead of having a hybrid solution where it's sometimes handled by the parent. Change-Id: I5f4c95dce2573da821a0498c7c40f6cdff9b245d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Change default animation systemChristian Strømme2019-01-092-20/+8
| | | | | | | | | | The dragon wings animation system is now the one being used by default. Enabling the old animation system can be done by setting the environment variable Q3DS_NO_DRAGONWINGS or by setting the option --no-dragon-wings when starting the viewer. Change-Id: Ieb920e2bb2cea61f460ec175e7fee06821403903 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* DragonsWingsChristian Strømme2018-12-103-9/+9
| | | | | | | | | | This adds the basis for the dragon wings animation system, which is a light weight animator that works directly with the qt3ds' graph objects. To enable it pass --dragon-wings to the viewer or set the env variable DRAGONWINGS. Change-Id: I4403b1ac5f8c96a62993fa2043af9c611be64abb Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Revert "Improve state handling"Christian Strømme2018-11-062-224/+227
| | | | | | | | | | | This commit is introducing to many regressions at this point, so the best option is to revert it now and re-apply once the remaining issue are resolved. This reverts commit 55b43d3e1c3a100f4ad41d94c132afd2a0d029b3. Change-Id: If2733c506aa64a242a4605d81d69f66e2f7aae41 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Improve state handlingChristian Strømme2018-10-292-227/+224
| | | | | | | | | | | | | | | | | | | | This is an attempt to clean up and make the state changes more sane, i.e., by trying do everything once and in the right order. There are still ugliness in this code, but it should be more easily to follow now, aided by extra inline commentary. This change should also improve some of the flickering seen in some examples when changing slides, as we try avoid re-setting stuff when we don't need to. Since time updates for the new slide is deferred until the first time callback, some of the test needed to be changed to their QTRY_* version. Also, there's now a clear distinction between stopped and paused, where paused means the slides progress is stopped at time t, as expected and stopped means the slides values and state is reset to it's initial state. Task-number: QT3DS-1866 Change-Id: I7a9b61ee3ad4a976e0e8d4de386704dcf0d526bf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Support stereoscopic renderingKaj Grönholm2018-10-241-2/+2
| | | | | | | | | | | | | This patch provides stereoscopic rendering support for Qt Studio qt3d-runtime. Contains API to switch between stereo modes (mono, top-bottom, left-right, analyph red-cyan & green-magenta) and to control eye (camera) separation. Adds menu into Q3DSViewer for these. Task-number: QT3DS-1023 Change-Id: I3da3d34606a07178978eba83236ca6cb6360e893 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Support Float as a data input typeLaszlo Agocs2018-08-292-1/+9
| | | | | | | Float is equivalent to RangedNumber with no min and max specified. Change-Id: I6d7feaec660034f40a41d59547580a87710bcda0 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add Object3D tests covering object orderingLaszlo Agocs2018-08-171-0/+104
| | | | | | | | | ...and fix a small glitch that prevented objects being detached from the parent when m_layer was null (because the object was never attached to a live Layer3D). Change-Id: I2479d255aa150bae085d845dd36061b4ffbf19a9 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add Object3D infraLaszlo Agocs2018-08-175-1/+374
| | | | | | | | | | | | | Use Group (and Node) to crystalize the concepts. Fix also some issues in Studio3DEngine. Also changes the pureqml example to a manual test since Studio3DEngine and friends are marked as internal for now, so shipping examples for them along with the regular examples is not desirable yet. Change-Id: I8ab0ad50d1b846cadb6927fcb38afe9dff576c2e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix effect orderLaszlo Agocs2018-08-101-0/+51
| | | | | | | | | | | Object order in the scene graph is front to back (like with Layer). When building the effect chain for rendering (which is back to front by nature) the effect list must be iterated in reverse order. (just like the compositor does for layers) Task-number: QT3DS-2053 Change-Id: I0ef82fe678330f9863a08f0411638f216dbef5f4 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add flags to Q3DSEffect and check for ReliesOnTimeLaszlo Agocs2018-08-033-0/+118
| | | | | | | Task-number: QT3DS-2025 Task-number: QT3DS-2023 Change-Id: Icd8e5190b078cd78ee13525c522097d94fe45ded Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make effects dynamically spawnable, destroyable, and changeableLaszlo Agocs2018-08-021-2/+2
| | | | | | | | | | | | | | | Also makes it possible to use filenames in effects', custom materials' and behaviors' "class" property. Previously this could only contain an id referring to an entry in the Classes section of the uip document. With programatically constructed scenes the pre-loaded list of effect/material/behavior descriptions is not used. Instead the instances refer directly to filenames (the loaded data is cached like with meshes). Custom materials and behaviors do not yet support changing their "class" at runtime, although they get many of the enablers. Change-Id: I560ab00b9dc447bd19d5ebeb749972873b89ec2c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Allow changing eyeball for effect and behavior via the Q_PROPERTYLaszlo Agocs2018-08-021-2/+2
| | | | | | | | Like Node does. Also add the missing property for effect, for consistency (not that these are used anywhere yet). Change-Id: I8e3e5a0e527cb4e4ea7feca52ec42fe104379c6a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove a now-unneeded resolveReferences callLaszlo Agocs2018-07-301-0/+4
| | | | | | | | | | | There is now a resolveReferences call in the scenemanager whenever building a scene. Also, add a note in the autotests since there it is still important to have an explicit call. Change-Id: I26d720411c6980c65eb60bbe680cbb10ce8c9cbe Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix not correctly resolving texture source pathsLaszlo Agocs2018-06-253-0/+118
| | | | | Change-Id: I2b984ace753457bb65e83a53f133703ffd213e39 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Part one of the property re-workChristian Strømme2018-06-222-29/+29
| | | | | | | | | | To make the property system more flexible we now use the metaObject infrastructure to keep track of the graph objects properties etc. The goal of this change is to make it easier to add new properties and access/modify those properties at run-time. Change-Id: I82ee2ac34c4a2ae8c9576a4cd04d57e2058ca9be Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* newObject: reject duplicate ids by returning nullLaszlo Agocs2018-06-201-0/+3
| | | | | | | | | | | Preventing the console or any other user of the API to create objects with the same id is essential. (ids are unique, names are not) This has been in place already in registerObject but newObject returned a valid object even when registerObject failed. This is now corrected. Change-Id: I77fed32c4f208774e33c945e085c5c5b1b6e34d8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Move towards enabling dynamically adding and changing modelsLaszlo Agocs2018-06-202-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Add an 'object' command to the console and extend the scene-change handler in scenemanager. Models can now change the mesh (sourcepath) dynamically. (in theory) Also add C++ default values to Q3DSTextNode. newObject<> uses the in-source default values, the metadata is only applied when parsing from uip. Problems with not refreshing due to layer caching are now fixed. Dynamically adding a light should now rebuild buffers, shadows, etc. as expected. Also brings back toggling the console with backtick to the widgets mode of the viewer. Add also a simple QEntity graph viewer in the profileui, showing entities, object names and components. This is very useful to verify if submeshes appear and disappear as expected for instance. Task-number: QT3DS-1178 Change-Id: Ieae38cfcb3a7eeba81a9bbcc0c76c99296655d5c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Don't use a slide's time value to update the component playerChristian Strømme2018-06-181-15/+102
| | | | | | | | | | The two time-lines are not necessarily synced up, or have the same duration, so when a component player is not playing, use the component players previous position to update the visibility of its nodes. Change-Id: Id959bd78e4d5ce9622001d47b1deff82c77780cb Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Improve visibility updates and add effective visibility trackingv2.0.0-rcChristian Strømme2018-06-011-40/+40
| | | | | | | Fixes visibility for effects and layers. Change-Id: Ib0ed0f28145680171e3e78c49a68cc58332dad3b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* When no part in model mesh with sub-meshes use last instead of firstAndy Nichols2018-05-281-1/+1
| | | | | | | | | | | | | | | This resolves an issue with .mesh files generated by older versions of Q3DS that stored revisions in the .mesh file. The models did not explicitly specify a part number for the latest revision, so the oldest revision would be used instead because that was part #1. Now when a mesh source has no part number, we will by default use the last mesh in the mesh list. This will still typically be #1 because non- submesh meshes still will only have 1 part entry. Task-number: QT3DS-1791 Change-Id: I8c9633c545c2f4f1fa325d9b0a28ab5981acd3b6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove negative scale from cameraMäättä Antti2018-05-231-1/+1
| | | | | | | This messes up the camera handing between the runtimes in lancelot. Change-Id: I5e3394564a296ee5b2a9aa938359b9e91f39a69f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make calling Q3DS::surfaceFormat() optional for Studio3DLaszlo Agocs2018-05-145-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Our standard pattern is to expect applications to call QSurfaceFormat::setDefaultFormat(Q3DS::surfaceFormat()); after creating the Q(Gui)Application, in order to ensure all OpenGL stuff and Qt Quick uses the format the runtime has determined to be ideal. With Studio3D however this is not always feasible - the Qt Quick scene may be hosted in an application that knows nothing about 3D and surface format gotchas. Therefore, make Studio3D force using the QQuickWindow's format() in case it is different from the ideal one. (if there was a setDefaultFormat(), as recommended, then the version/profile would match). At the same time drop Q3DSEngine::surfaceFormat() as an API on Q3DSEngine. There is no need for this (there's always the public Q3DS::surfaceFormat()) and not having this makes future steps towards getting rid of the globals easier. Task-number: QT3DS-1645 Change-Id: I43e8c0da4aa17e03eb2c49755eb064dd2dc3d0ce Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make ViewerSettings available in all public APIsLaszlo Agocs2018-05-042-0/+2
| | | | | | | | | The original plan of making it available only for Studio3D is probably not a good one now that it turns out scale modes are to be implemented in the engine, not just as a Studio3D-only feature. Change-Id: I25f95c92e40b6b4048ab3acfbb2c011dc44eac25 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add lancelot tests for alias nodes and scoped lightsAndy Nichols2018-04-273-1/+118
| | | | | | | | Also extend the timeout for the 1.x scenegrabber since some tests take longer to load that we were waiting for timeouts. Change-Id: I5b602572622b0aa163e753320346b6b6fd95dc78 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add Optional scene grabber for Q3DS1Andy Nichols2018-04-275-4/+224
| | | | | | | | | | This makes it possible to generate lancelot results for Q3DS1.x. This will only be built if studio3d module is present. You can turn this test on by setting the environment variable QT_LANCELOT_Q3DS1 before running the lancelot test. Change-Id: I6042457d715aa0dae0525d9de5f26a3a64443998 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add support for the fuzzy flagAndy Nichols2018-04-271-0/+11
| | | | | | | Ported from patch in qtbase Change-Id: I63510185c07d4d3bb18658e9ffb3d68ff5d148da Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add Q3DSDataInputLaszlo Agocs2018-04-232-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | Exposed as DataInput in the QML API. Also fixes a parsing issue with controlledproperty attributes in the Logic section. (namely that the attribute as not parsed if it was in an Add/Set). This involves some reorganizing of how the data is collected since we now need to accumulate both from the Scene and Logic sections. Also fixes cloning (Alias node) of controlledproperty data. Also adds a presentationLoaded() signal to Q3DSWidget and Q3DSSurfaceViewer because applications may want to act whenever a new scene is loaded (e.g. call setValue on some Q3DSDataInput object). Studio3D handles this internally and DataInputs magically just work, setting the values even when doing a reload or changing the source filename. Also adds a command 'datainput' to the console to allow quicker investigation of data input connections in the scene. Task-number: QT3DS-1404 Change-Id: Id2436490721e3386ba8604ca29ad4bda785521d2 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix non-functional checks in surfaceviewer autotestLaszlo Agocs2018-04-101-6/+6
| | | | | Change-Id: If40c25e1b51fc1261079a214c222618d301f7d06 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Shuffle around Q3DSGraphicsLimits usageLaszlo Agocs2018-04-101-16/+6
| | | | | | | | | Drop QOpenGLContext usage here and there in the runtime code. Also allows autotests to see if the proper versioned context creation was functioning and allows simplifying the checks in shared.h. Change-Id: I6861165d92c36e2cf7f7e56cf0004f624fbbd83c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Stabilize documents autotestLaszlo Agocs2018-04-031-6/+7
| | | | | | | | | And fix an actual bug where the engine ptr is not set for subpresentation scenemanagers. Change-Id: Ieb05c9ad91fdb7ff3e20175fcebb3816c376d126 Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Disable ANGLE in autotestsLaszlo Agocs2018-04-031-0/+2
| | | | | | | | | | It's hopeless. Even after fixing shader generation to keep ANGLE happy, nothing gets shown and there are occasional crashes inside ANGLE when trying to draw something. Change-Id: I0bc4f9a47c430a613b8e5a2858e7b711158c79c7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Reenable all autotests by adding a check for crappy OpenGL implsLaszlo Agocs2018-04-0311-52/+107
| | | | | Change-Id: Ifc86f62a968d8e409379c80038aa22c32d77c7e8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Avoid duplication in uipparser test's qrcLaszlo Agocs2018-03-271-1/+0
| | | | | Change-Id: I1dbfc0123fb13bb5267759a09cae12fb69a64a2e Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix regression in how end-of-slide is handledChristian Strømme2018-03-261-2/+2
| | | | | | | | | Fixes the issue that the setPositionChanged would report that the slide finished while it was not in playing state. Task-number: QT3DS-1325 Change-Id: I7e73c4caf75bba4b031380ecc83604246c6ddb21 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Always create the slide animator, even if there's no animation tracksChristian Strømme2018-03-262-2/+28
| | | | | | | | The slide animator should run and report time updates even if there are no animations on the slide. Change-Id: I5a3137a31b6964a7583be99f948d8d432722b89e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Support using Alias NodesAndy Nichols2018-03-263-4/+196
| | | | | | | | | | | | | | | | | | Alias nodes are weird, and end just just being copies in practice. Anytime there is a Alias node in the scene, a copy of the referenced node's sub-tree is copied and instanced. This is recreating the behavior in runtime 1.x, but is also not so useful because changes to the original reference at runtime are not reflected by these references. There is also some unusual behavior when it comes to the states defined by the slide graph, because it is hard to define which states should be used by the new instances. This commit tries to recreate the behavior of runtime 1.x, however this is difficult because there is significant differences between how things look in the editor vs the runtime for 1.x already. Change-Id: I37446da8d0710ac43e9db2516f9c540201a51c5f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Completely disable tests that tend to crash due to Qt3DLaszlo Agocs2018-03-263-12/+13
| | | | | | | | | | duh And revert the previous blacklist changes that are not helpful when crashes are involved. Change-Id: I4599f97d93c92789d14a238c979c1f41a0474bf4 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Skip documents test when no OpenGLLaszlo Agocs2018-03-261-2/+8
| | | | | | | | Unclear why the CI tries to run stuff with the offscreen platform plugin. Change-Id: I6d04ba03d583c8a486ed379a1fa260cc58087bdd Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Stabilize some autotests that involve actual Qt3D renderingLaszlo Agocs2018-03-262-9/+9
| | | | | | | | | Don't ask. Waiting for 10 frames is apparently not enough since Qt3D tends to crash if we start tearing down before a certain point. (not sure what that point is) Change-Id: Ifbc08e84fe9f9ae182acbfcecc1bff28d909f7cc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Temporarily unblock CI by blacklisting documentsLaszlo Agocs2018-03-261-0/+1
| | | | | Change-Id: Ifb604337ca84e9b8c660afcf0c6ed8f78347e557 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Temporarily disable behaviors autotestLaszlo Agocs2018-03-261-1/+1
| | | | | Change-Id: I48aafed291634373ba6d7441d9ab0a2ce4a27bf0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Implement slideEntered/Exited signals in the public APILaszlo Agocs2018-03-202-26/+26
| | | | | | | | Needs some rework internally since this needs passing around more data in our internal event struct. Change-Id: I879f11a279bea424b981358f27115969e5980c55 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix component animations when slide initially loadsAdam Treat2018-03-162-7/+36
| | | | | | | | | When a slide with an animatable component initially loads, the component will not animate on the first play. Patch fixes and adds a test. Task-number: QT3DS-1301 Change-Id: I12bde1d5f1c8dae69400a0c74640d8be0bee5abd Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix the slide duration algorithm to match runtime 1.0 and add testsAdam Treat2018-03-152-0/+17
| | | | | | | | | | | | | | | | | The slide's duration should be calculated as follows given behavior of runtime 1.0: * The starttime always begins at 0 * Begin to calculate the endtime by iterating over the master slide's layers and looking to see if the current slide explicitly sets the endtime property on these layers. If so, use the max endtime found. * Continue by checking all the layers local to the current slide and using the max endtime found. * If no relevant layers are found, use the slide's endtime property which by default is 10000ms. Task-number: QT3DS-150 Change-Id: Id1da672eceb7c854b34d49638c6ef575e451d40d Reviewed-by: Christian Stromme <christian.stromme@qt.io>