| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QT3DS-4221
Change-Id: I43947446a9ea28e55a834541a44dc6ca971d282a
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Fix assert and memory leak when registering qml streamer if it has already
been registered.
Change-Id: I6af73abb2c9806622dfde4a75a67a08b3391b2a5
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-4063
Change-Id: Ia07f21be65ebda9733773504eb2e0ddce4009fab
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
Run render tasks also before prepare step so that the images are loaded
for it. The prepare step doesn't work properly if the images have not been
loaded and generates wrong materials for first frame.
Task-number: QT3DS-4131
Change-Id: I7a3f5fb08f915a31dd291c3c147d8f078ecee908
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The runtime contains unused viewport parameters. Remove those and fix the
editor by reading the scissor rect from render list instead of render
context, which contains wrong scissor rect.
Task-number: QT3DS-4103
Change-Id: I8b443c3a5e8d7ac84eb211633cea2afeed6da30b
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: Ie113ad83148ae735a691614e5f771a3c5cc0bc9c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
| |
Search through custom material string properties for subpresentation
ids.
Task-number: QT3DS-4090
Change-Id: Ia6a7227a9b9c5eb069f5670e7188644bf212ae8c
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
| |
Controlled property caused asserts in different projects.
Task-number: QT3DS-4084
Change-Id: I938df69d58935cabde070cadf1da77e2125479e2
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
Avoid some extra work while rendering in stereoscopic modes.
Task-number: QT3DS-4044
Change-Id: Ia8f6bf07e4063f2da2054e4f384e28abe0a4b077
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add missing handler for "ordered" attribute also on runtime side. Also,
uncomment assert for unknown attribute, as silently ignored attributes can
be tricky to debug.
This does not fix the issue of non-ordered groups having wrong depth/alpha
in Editor, but makes Editor and Runtime behave identically.
Task-id: QT3DS-4058
Change-Id: Ic68d245143664d8ac4e74a6b3434f6ff476608a6
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-4040
Change-Id: Ie5f8284ab76cd4aa5f3ff0701457f4ef84c3e215
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-4041
Change-Id: I64ccd129b12053b057e5e992d89a05a2bc6cd33d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
-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 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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
Flip ktx and astc textures in shader if project settings has
flipCompressedTextures flag set as true. Also, fix bug in shader generator
UV flipping code.
Task-id: QT3DS-4015
Change-Id: Ic406569c15e172c513f5d412ba41ab84348a392b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
Material properties should be updated always, but changes to material
images use Image type so they didn't update when they should have.
Always update image properties too.
Task-number: QT3DS-4002
Change-Id: I8df3649c607f88fc08463c7e101c495612f5a0f5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Implement also anaglyph red-cyan & green-magenta stereoscopic modes
for opengl runtime. APIs for C++ and QML. Add options into viewer.
Task-number: QT3DS-3981
Change-Id: Idb9f659b3799e954253e37045c1a3b2a55fb2779
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ASTC textures would need to be decompressed upon loading to scan for
transparency, or the texture files would need their own user-defined
settings to enable transparency. Instead, as a work-around, materials
can be forced to be treated as transparent without manipulating opacity.
This is implemented with a transparency mode drop down list containing
"Default", "Force Transparent" and "Force Opaque" options. "Force
Opaque" can be used to force the material to be treated as opaque even
when the textures used are transparent.
By default ASTC textures are treated as non-transparent.
Task-number: QT3DS-3904
Change-Id: I22255ffb2e2be5efea3e56466d58ddcc46490bb2
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Janne Kangas <janne.kangas@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If object has both opaque parts and transparent parts it will be rendered
incorrectly due to no z-buffering. Add two-pass method to render the
opaque and transparent parts separately.
- Add opaque pixel check to transparency check of images.
- Add alpha test rendering to default material shadows too.
Task-number: QT3DS-3515
Change-Id: I9700b8fb463df9143c5bb9cbe66c7570081ebf5c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
By default frustum culling is disabled because for most scenes all items
are always visible. There is a not insignificant cost to doing frustum
culling, so it shouldn't be the default behavior.
Change-Id: Ibc0c0a4bd1cf65a215256de9ec22ca1d97eb6de5
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Initial support for top-bottom and left-right stereoscopic rendering
on OpenGL runtime. Add settings into viewer menu to control these.
Task-number: QT3DS-3212
Task-number: QT3DS-3868
Change-Id: I5b22169fd407118998a43c1e601cb60b7e3fd6a8
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-3731
Change-Id: Ifa7bc5fd3452e0a89576f040c232468af04ed39d
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QT3DS-3766 had object have their master slide values when activated.
This is fixed by applying initial values of the slide to inactive
objects also.
QT3DS-3768 had referenced materials not updating if the original
material was changed while inactive. This is fixed by updating values of
all materials even when they are inactive.
QT3DS-3771 had objects be able to be activated from slides where they
were not according to the editor. This is fixed by having a slide check
when the user changes the activation state.
Task-number: QT3DS-3766
Task-number: QT3DS-3768
Task-number: QT3DS-3771
Change-Id: I7898d693384b05b381d9bc775b68c0833447f496
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QT3DS-3748
Change-Id: I0c5cd712960bd1caedb36828a159e90a52733dd2
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Runtime no longer create legacy text renderer if it is not necessary.
Support for reloading project fonts added to distance field renderer.
Legacy text renderer can now be taken into use via setting env variable
Q3DS_DISTANCE_FIELD_DISABLED=true.
Task-number: QT3DS-3744
Change-Id: I6f332255386aa4154ea1869feec795e08aec251f
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add color components for vec4 as additional properties and fix the
AddEffectExtendedProperty function string building.
- Optimize the functionality by removing multimple string conversions.
Task-number: QT3DS-3715
Change-Id: I201e10da38a8ea4898a8c5c7b0ad77c41ece91c8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|