| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QT3DS-3366
Change-Id: Ifcd328051eaf594a801db77497eca2482713469d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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 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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Float is equivalent to RangedNumber with no min and max specified.
Change-Id: I6d7feaec660034f40a41d59547580a87710bcda0
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
...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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-2025
Task-number: QT3DS-2023
Change-Id: Icd8e5190b078cd78ee13525c522097d94fe45ded
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I2b984ace753457bb65e83a53f133703ffd213e39
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Fixes visibility for effects and layers.
Change-Id: Ib0ed0f28145680171e3e78c49a68cc58332dad3b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This messes up the camera handing between the runtimes in lancelot.
Change-Id: I5e3394564a296ee5b2a9aa938359b9e91f39a69f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Ported from patch in qtbase
Change-Id: I63510185c07d4d3bb18658e9ffb3d68ff5d148da
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: If40c25e1b51fc1261079a214c222618d301f7d06
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ifc86f62a968d8e409379c80038aa22c32d77c7e8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I1dbfc0123fb13bb5267759a09cae12fb69a64a2e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Unclear why the CI tries to run stuff with the offscreen platform
plugin.
Change-Id: I6d04ba03d583c8a486ed379a1fa260cc58087bdd
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ifb604337ca84e9b8c660afcf0c6ed8f78347e557
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I48aafed291634373ba6d7441d9ab0a2ce4a27bf0
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|