| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
- Also added debug logging in RenderShader for the Shaders logging category
- This restores the deferred-example rendering which was broken since
3abbf9227ada8f68821a5ad473bba4f52e625fb5
Change-Id: Ie1b39c903f8c33f7d9b859317ae185c42043a9e2
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Will help have logs only related to shaders
Change-Id: I74df08a247e0af075fa14dcf10596dc141a6eaa1
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
It is now contained in RenderViewJobUtils inside an helper struct called
UniformBlockValueBuilder.
This allow to simplify the code and will make unit testing easier.
Change-Id: Ibbeeda8d913bfa1adc7c93c1fecb9cafda15deb3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
This will help fixing the dynamic destruction in follow up patches.
Change-Id: Id44fbeac388628c0e563d288e13d1f15d7ac0c24
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having a QNode* or QObservable as the subject of a change, we use
it's unique NodeId instead. That will prevent the ChangeArbiter from trying to
distribute changes by looking at a QNode/QObservable id when the
QNode/QObservable might have been destroyed in the meantime.
Change-Id: Ia419d5b841434fd65522c8c65de552089cfe97cf
Task-number: QTBUG-44628
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Note: Only test proper initialization, cleanup and that it matches a frontend
peer. Doesn't that shader loading as this requires a context, surface...
Change-Id: I05f6ef059005b4781b82876a8d73e46d41d44387
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
This was probably forgotten when the property name was changed fron QByteArray
to char *.
Change-Id: Idd6a988703a241519b3aba7b1d127adae5e1375e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Hopefully in the long term we can make the renderer smart enough
that it can automatically use instancing to render such things.
Change-Id: I9f5cfabeea11f5e6b925d5ad2466afa8e601e6f8
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Add link to dependencyHandler also for the depender task.
Change-Id: I751ef6021e2144e2b52766a7b26496b71fc44342
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Ifdd3afa86a7aab56ecd9594cab21b0f1d58f160c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Increment running thread counter before removing task from the queue. This
prevents the idle test to pass if queue is empty and job runner hasn't yet
increased the counter.
Change-Id: I01992ef6e9b437d2ce3d9f62e6025b3122e19fa8
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I30a9ce2955a5e0d80ca8f592fe6fb750f0efbb07
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
License header update for propertychangehandler_p.h. Apparently the script
managed to skip this one.
Change-Id: Iabc190c5b85b250ec4efd0abd44d104e2006d438
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt3D will be published with commercial licenses and there can't be
3rd party LGPL code. This task will remove the ThreadWeaver code and
places the adaptation code inside configuration.
Change-Id: I316f23087cdd8fed0afafbb1a3d78e3ff159585a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
This can be reverted following the merge from dev -> 5.5.
Change-Id: I7b85e64aa91d9ed81e3ef4d866e531056314d72e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On Android Qt3D apps used to crash when they got moved to background.
beginDrawing() correctly recognized that the window was not exposed anymore, but
some of the cleanup for the render queue was not done in this case.
This is now corrected, so apps will survive. It is not the full solution because we
still continue to attempt to render which is a waste of CPU time. Proper pause and resume
will have to be implemented later, similarly to the Quick scenegraph render loops, based
on the expose events.
Change-Id: Ia567d891fc746bb6851524e0f8a998a8fd53f8b1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt3D rendering may change state that is relevant also for the Qt Quick
scenegraph. This becomes apparent in more complex cases, for example
combining a Qt Quick Controls based UI with a scene containing multiple
textured objects often ends up in totally garbled frames. To overcome this,
call QQuickWindow's resetOpenGLState() which is offered exactly for this
purpose.
Change-Id: Ic56d2f78e121908335917a89b97ba735ca24e0af
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Relying on Alt press/releases has the annoying side effect that some systems (X11)
will not give a KeyRelease for Alt when pressing Alt+Tab.
It is better to handle such keys based on the modifier state. This avoids getting into
an "Alt is stuck" situation when switching back to the application's window.
Change-Id: I8e1675d9d4093e162fe0e42a2def26737d7a7467
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Initial version of ThreadPooler to substitute 3rd party ThreadWeaver.
Qt3D will be released under LGPLv3 and commercial licensing terms,
therefore we can't share code with free licenses.
Change-Id: Ic0956b40e4960002205ee32c19a053813339791c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Fixes compilation on QNX 6.6.
Change-Id: Ib6215d5bc1f86139154deb025beb38c591f78f76
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
No need for these anymore.
Change-Id: I0737e2d11878e610b0bec682ee473b696e4d33de
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To preserve our sanity we will only support ES 3.x, not 2.0 + GL_OES_depth_texture
+ EXT_shadow_samplers. This way we can provide version 300 es shaders and do not
have to introduce yet another filter and technique.
Change-Id: Ib5c826d6540b4848f0cb4629e5311150169a9697
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using Scene3D the context is shared with the Qt Quick scenegraph
and the state can be changed arbitrarily between Qt3D updates. Caching
the state is therefore not an option between frames.
This fixes texture usage in apps using Scene3D and Qt Quick controls.
Change-Id: Ifc67171af5209499bfdd4474230d59f03e22889d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The API should be ES in an ES-only build of Qt, or when dynamically choosing
ANGLE on Windows.
The profile should be NoProfile. This is particularly important for systems where
requesting a version like 2.0 gives a < 3.2 no profile context instead of >= 3.2
compatibility. The default filter should match both, hence using Compatibility is
not an option.
Change-Id: Ie8f20b0f09d8d6f6569cfda0f8c2b7217a2e23df
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we do not rely on 3dinput in any form then no factory will ever get registered for "input",
simply because the entire input module is not loaded.
Change-Id: Ic122f7c046d5fd7c07fd3229254a3e7ae36fd3de
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed the calculation based on the loops below.
Having extra uninitialized indices at the end may seem harmless, but only
until encountering GL implementations that do include all index buffer
values in their validation process. With ANGLE for example the
drawElements call was often rejected due to these random, potentially
large uint16 values in the index buffer.
Change-Id: I7c54dec921961ce1bed29c30a0bfa09c91a287dd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
qnode.h:60:16: error: declaration of ‘clone’ shadows a member of 'this' [-Werror=shadow]
Change-Id: I1a800c709d3543699131ffff13c381333ae8cec0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
clang is complaining this is missing Q_DECL_OVERRIDE, so just remove it
as it's already in the base class.
Change-Id: Ie1a270fd29a3c94e43476a05fb5f15724aabf7f3
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ia2620f1d15400ab4490357f322050846d0deb705
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|/
|
|
|
|
|
|
| |
Classes should either use or not use override, otherwise it hurts
code readability.
Change-Id: Ibe3e5a5fdc5cb3fc4c61ab722005c337f5998c26
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
The non-ES shader is an 150 core one. To keep things working with
2.x only and non-core, use the es2 variant. This is in line with how
all the other built-in materials work.
Change-Id: I63c673506c8be0b9b89aa4470728c40b867306c6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Examples like wireframe tend to crash on exit. This is because the platform
surface filter sets the renderer's surface back to null, while we are trying
to build some jobs still. Even though everything gets shutdown soon after that,
we have to somehow prevent any operations relying on the surface in the meantime.
This is also an opportunity to avoid exposing the surface pointer from Renderer.
Instead, communicate the surface size to the render views.
Change-Id: Ifc739ec50e3f6a67d20bfd0dc1913a12b906a8ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I391a3e48378579130ec7e18958389775b022843f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
4.0 satisfies a filter of 3.1. Previously this wasn't the case, due
to the incorrect condition for the minor version.
This makes examples with filters for 3.x working on cards that provide
OpenGL 4.y where y < x.
Change-Id: Ie443bdb816410c71fe593143c4a58c4d10571abe
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Fix an int - size_t mismatch and a linkage problem.
Change-Id: I19a57861850b4e112c98beb42b00d0a05d3f5509
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The QJSValue -> QVariantList converter will not be registered because there
is such a conversion provided by qtdeclarative since Qt 5.4.
This avoids a warning on startup.
Change-Id: I69572f36f655315d4c91000a26625f44690dcd6f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
This way they are compatible with how mesh and texture source URLs
are handled.
Change-Id: Ifeee504fd3f5957d23f5cade92a73663488bdaf9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
The ideal way would be to call the function from QQmlFile but that would
need a dependency on the qml module. So just copy the function in.
Change-Id: If34d8a2356bbe87b2a011c1c25a79a3f24ebb1ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
QGL* is not used anywhere so the module is not needed.
Change-Id: I1e091b1c3c0ed37c3587c6caf3bb7cf18cf5af0b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We always convert to RGBA8888 so the only acceptable combination is GL_RGBA - GL_RGBA8.
Previously we were checking the presence of the alpha channel in the original image. This
is quite wrong since we end up with GL_RGBA - GL_RGB8 type of combinations in case the
input has no alpha. That is not a valid combination.
This makes images without an alpha channel, e.g. image formats that provide Format_RGB32
QImages, working.
Change-Id: I2631071134c5224c52b64cff2f00ef6ae166762b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I377e947bc8dc4c3afefd59a1bbf08b584065901c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I5838a89a4458d7cd235711ec31c5c88973415943
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Every time the assimp plugin is loaded, that file gets created.
Avoid the create and kill calls since all that achieves is to install
a null logger. According to the assimp docs a null logger is the default
anyhow, so simply remove the two lines.
Change-Id: I12dd50827218dcb07d7d5889398e9daf31789953
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-44148
Change-Id: Ia15592328638dd243b7f82d8e2dcc7e523447cbf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I784e7a9833324da0330d70f8a16d8bf64cf6db08
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
As for preparation for Qt5.5 release the copyright header is
updated to correspond the current license requirements.
Change-Id: I36632918b66f455539453b42c369689fb11298ec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: If06f2943fda92512437768a749055968d7c9af04
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Id2312ad96f92326960283be6d2f1a0b0404fc1f9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
This solves the material-cpp flickering
Change-Id: Id83ee9ad5e68ceeb3caf67ef48a61a431218a953
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|