| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QT3DS-2903
Change-Id: I0674abbdcd11395869cdc7c196c9c1aef3b484f3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QT3DS-2664
Change-Id: I5310329fbf6e4e07cade28ae68161081ddf77f3c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add functionality for requesting/setting metadata specific to this
datainput to Q3DSDataInput API. Currently offered on C++ side only
as the intent for metadata is to facilitate dynamic binding of data
sources to data inputs rather than using metadata in end user-facing
visualization.
Change-Id: Iccda62247cf1dcd857073f92f40d7f955ea43817
Task-id: QT3DS-2993
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Returns QVariantList containing Q3DSDataInput* allowing both QML
and C++ iterate through datainputs defined in the presentation. Also
implement isValid() that checks that datainput name is valid and datainput
is associated with a presentation. Modify qmldatainput example and provide
"cppdatainput" example for C++ side.
Change-Id: I83afda1b03326390f4cf4f23c68219248a9d3ae2
Task-id: QT3DS-2204
Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Elide has option for None, Left, Middle, and Right.
Converting the original boolean to support those.
Task-number: QT3DS-2707
Change-Id: I8bee7b7bb9dc58661663ea7a06cc70baffa3c31b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This task does not handle eliding itself, it just adds support for
passing it from the editor to the runtime. Eliding itself can be
handled after QT3DS-1419 is done.
Task-number: QT3DS-2707
Change-Id: I55da680daaeb54e6e6b7cd6c4dedce17026ff303
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Keep support for old style offsets until UIP version is updated
next time. This change is not critical enough to update the UIP version.
Task-number: QT3DS-2755
Change-Id: Id82a27d4057892213b7562bbbe3926a965a185ab
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Allow a QByteArray to be used to create a custom material instead
reading it from a file.
Task-number: QT3DS-2906
Change-Id: I2718240186b62c0ff2bf36e5313bed6754472066
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>
|
|
|
|
|
|
|
|
|
|
| |
This change adds support for adding objects at run-time in the new
animation system. Note that this is now done in-place and requires
no rebuilding of the animation track for the slide, which means objects
with animations will start immediately at the right place.
Change-Id: I987aa1aeaa272f3506310304b5543bd6f9547d39
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-2110
Change-Id: Ib2fc628ef069cca70a5ccdf3308417759487b901
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@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 is a faster and cleaner way to write/read both static and dynamic
properties.
Change-Id: I0ee3b8eda86080b79bce42d67cb26a7fe04f60a0
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QT3DS-2644
Change-Id: I19d3b8e77d50e4817b83c528383bbe0e1931fdc9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If "Use ktx textures if available" option is set for the presentation
from presentation settings dialog, try loading the given image file with ktx
extension first.
Task-number: QT3DS-2505
Change-Id: Ib1876fb810287beb943d8138b8fb2755853e6f3e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
This is required by studio to load component slides.
Change-Id: I037e42ef6f01c5ac80aab67d0a70407acdbb93d4
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The scene manager must get a notification saying that something has
changed in the geometry of a given model (so it can dirty appropriately).
Therefore the standard notifyPropertyChange({ ...}) model has to be used
for the updateCustomMeshBuffer functions as well.
This avoids not updating the content in the 'standalone' test when trying
to change geometry after all animations have finished.
Change-Id: If9d8a8fa3c69147206803b790f0ea4ec1e59ec72
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\
| |
| |
| | |
Change-Id: I5339cbc7f52608a7bfce10360ed20ba344b9c736
|
| |
| |
| |
| |
| |
| | |
Task-number: QT3DS-2325
Change-Id: Ia57d5b34be87c46dcd029ce3289d3436f8e643f2
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Contains some basic types for getting the ball rolling,
and isn't very usable outside that.
Change-Id: Ib4c186e26d7bd142a9fe51bd74ea54a7bf5fd691
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The studio needs to be able to zoom the camera when using edit modes. The
previous runtime used view matrix scale to do this, but the scale
component is not used by Qt3D camera so add zoom factor to camera node and
apply it to the projection matrix.
Change-Id: I7ba66bc9b5b420d216ab201411ef4aa7d967d029
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|/
|
|
|
|
|
|
| |
Apply scene clear color change to clearBuffers so that studio can change
the clear color and enable/disable it.
Change-Id: Ib41c7da492b8aeddd27bdd7b4dabbfff4b489a20
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a boolean property. If it is true, the fov value will be
interpreted as horizontal angle.
Since there were change to MetaData.xml, it was was updated to
match editor version.
Task-number: QT3DS-708
Change-Id: I68ac43c497a344a1f7bfcf25505f0dc4eb4cd6b5
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
mapping the property change to a change flag is expensive, so look-up
the change flag when creating the animation callback, as it won't change
after that and we can just cache it for later updates.
Change-Id: I520a3be298735c55aac6e8e6e8cb2215f2c9d75e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Calling these functions should not have side-effects on their objects,
and are potential bottlenecks, so avoid detaching unnecessarily.
Change-Id: Ibbe067f1c24af669bb7db7238b354cdbf998bf1d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
...but only for layers that start out as subpresentations. Changing
back and forth between "normal" and subpresentation layers is not
supported.
Change-Id: Id160f3efee12bd7b1a950635e738a47bc9d890b6
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ill-named ReferencedMaterial lacked quite some of the dynamic
property handling, meaning it was not possible to change the
referencedmaterial property to a different target material instance.
This is now corrected.
Therefore, the following console command sequence generates a green
sphere, where the Model's child is a ReferencedMaterial that points to a
DefaultMaterial living somewhere else, not associated (in the object tree
at least) with any model.
object(mm,mm,DefaultMaterial,Layer,Slide1)
object(kk,kk,Model,Layer,Slide1)
set(kk,sourcepath,#Sphere)
object(rm,rm,ReferencedMaterial,kk,Slide1)
set(rm,referencedmaterial,#mm)
set(mm, diffuse, 0 1 0)
Note that we continue with the assumption that a ReferencedMaterial
cannot reference another ReferencedMaterial, meaning the target is
always a default or custom material (or unset).
Change-Id: I2cebb9689167f0ecb409d1bf73ee3df2364f3e04
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When changing slides, always reset to eyeball value to "true" for
all objects on the master slide, as the value will be set to false
by the current slides property change if needed, or else the eyeball
value is implicitly true.
Task-number: QT3DS-2084
Change-Id: Ie7906d642edda2ff7bd1e8850cdb0ed0ce5c7eb5
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure the value of sourcepath is re-evaluated and adjusted as needed
whenever it changes. In addition, add support for qrc:/ prefixes since
applications written for the old runtime may try to treat the values are
URLs instead of actual filenames (which is very wrong but it does not cost
much to convert qrc:/ to :/ )
Task-number: QT3DS-2089
Change-Id: Id2ba31ef6246db2d4477a87ec15433b17bc836be
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding View3D items to the Qt Quick scene allows turning off layer composition
in the main presentation, and instead accessing each layer's texture as an
individual visual QQuickItem. This way the 3D layers can be placed anywhere and
be blended freely in the 2D scene, while avoiding all the trouble multiple
Studio3D items would cause.
This also moves composition into the Qt Quick domain, providing a more
sensible story for creating 2D-3D UIs. While post-processing effects are
still active even in separated views mode, it is now possible to use
ShaderEffect instead.
MSAA and SSAA layers are not handled currently and are left as a future
exercise for those who like mind-boggling complexity.
Task-number: QT3DS-2032
Change-Id: I08128b65d0344c609f8dea15f9562ccfd19140a6
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
Also fixes changing the filename in the sourcepath property of an Image.
Change-Id: Ie805cc288ecda96cdf126ec1d611aa863cb82c48
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like with effects, the 'class' property can now be changed at run time,
and can also refer to a file (in addition to a #id from the .uip's Classes
section)
Note that constructing materials on the fly needs to be done so that the
active scene's tree is consistent at any time. For example, to replace a
model's material, the model has to first be unparented from the scene's
object tree (and so be disconnected from the scene) because having a
model without the sufficient number of materials is not allowed. Once
the child object (the material) is replaced (and, for custom materials,
the class property was set), the model can be parented back to where it was.
When just changing the class property on a CustomMaterial, this is not needed
of course, the change is picked up right away.
Change-Id: I086154023513d13a4a298aeac7e0e247951a6e09
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>
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of setting a the mesh' source path, one can now also call
setCustomMesh with the plain and lightweight object describing the
geometry. This will lead to changing sourcepath to #Custom and the
engine will generate Qt 3D buffers and geometries from the provided
data instead of any file or built-in primitive.
Change-Id: I685a20275f99b051190a523bb996f606af5a8182
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding, removing and reordering layers is almost in place now. Some
things are still missing when it comes to cameras since the mvp in the
vertex shaders for layers introduced on-the-fly is incorrect.
Extend also setparent() in the console to allow inserting new subtrees
at arbitrary places. Q3DSGraphObject already has the necessary APIs
(insertChildNodeAfter and friends).
Therefore, doing
object(newlayer, newlayer, Layer, null, Slide1)
object(newlayer_cam, newlayer_cam, Camera, newlayer, Slide1)
...
setparent(newlayer, Scene)
Adds the new layer after all existing layers (and thus to the bottom of
the stack since the 3D Studio object tree (and the editor's
visualization of the tree) assumes front-to-back ordering for the layers
which is weird but that's what it is).
To instead add to the top (i.e. before the existing Layer children of
Scene), we can now do:
setparent(newlayer, Scene, null)
This also matches what clicking the "Add new layer" button in the editor
would do.
To implement moving layers around (to change their ordering), one can
now simply do setparent(newlayer, Scene, SomeOtherLayer) (or the equivalent
using the Q3DSGraphObject APIs) in order to move newlayer after SomeOtherLayer.
Change-Id: I9c832e4299cb7398d97a799dce5eaa3cd5518a77
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When associating an object with a scene, or a slide with a master slide,
the scene/master slide will start listening to property and other
changes on that object. When disconnecting from the scene/master slide
these callbacks should not be active anymore. (while unlikely,
technically we could still reuse the same object in another scene or
slide graph)
To implement this, some non-node types need a bit of reshuffling when it
comes to how and when the attached object is created since we now need
to store some callback registration data in there.
Change-Id: I986863f7802b0b53a560af24eccb1dcb33958e2e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assume non-premultiplied alpha which is the common case for regular
image files (we do not explicitly convert to ARGB32_Premultiplied or
such and therefore the image data is non-premultiplied in most cases
(except of course when the user explicitly creates an image with premul
alpha but we cannot do much about that)).
When using subpresentations as texture maps, premultiplied alpha is
assumed to be true since this is what both the layer compositor and
Qt Quick output. This is the only case for a premultiplied image source
(for now?).
This cleans up a number of todo notes in the source.
Task-number: QT3DS-1982
Change-Id: I73578da11a6e393bcbe467fce883478f54b1f5ef
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Simplify the communication and mapping between animating values
by using the new property system.
Change-Id: Ie2a014778a1f05c916243f6c5d3299801fc43293
Reviewed-by: Laszlo Agocs <laszlo.agocs@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>
|
|
|
|
|
|
| |
Task-number: QT3DS-1866
Change-Id: I3ce33b60f20994d87e76367e697c73a68c4ddad6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Only active for Qt 5.11.1 and newer.
Task-number: QT3DS-1839
Change-Id: I7a10a14b58e2931ca75e5aee21aef88ed1d63fee
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
Fixes visibility for effects and layers.
Change-Id: Ib0ed0f28145680171e3e78c49a68cc58332dad3b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
We were not generating property changes implicit start and end times on
slide or components slides. This change adds a post-processing function
in the parser to generate those.
Change-Id: Ifa0592e159d4d33c13923f7b3806540bd5bb3be6
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If a layer has sub-presentation set, mark all objects in the layer as
disabled to avoid those from being processed.
Task-number: QT3DS-1731
Change-Id: I672ba567837bc0e5ec2c9d1773216a9b80385fb2
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
We need to update these the same way we do node types, which includes
storing the rollback data to reset the values once the slide changes.
Change-Id: I2f59a68d279d00c331ca63f29885c1b0552008a9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Simplefies usage and we're not saving much from allocating it on demand
anyways.
Change-Id: I14a8921932c7b4ee26f5b2d05588fecfbc1d84b6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Move the relevant code to the slide player, as the implementation
details belongs there.
Also, updating the properties are now done in-place and without extra
heap alloctions, which should make the code more performant as well.
Change-Id: I5cee4ee24a670faf0245d9fda4ad2a7a66734851
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
Store transparency check results per sourcePath to reduce loading time.
Task-number: QT3DS-1589
Change-Id: Iff6ba90aeb4871e3fcd6091e79bec39a037d2ff4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|