| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I083461d12e3398c10c6a41de54c3b588ecaf07fa
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Updated examples and tests accordingly.
Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Large scenes may lead to having lots of RenderTextureImage clones. Uploading
the (same) data to the (same) OpenGL texture for each of these is not necessary.
This reduces the number of uploads from 10816 to 3 (as expected) in case of the wine
glTF model for example.
Task-number: QTBUG-47508
Change-Id: Ifa0b341114b2b912aa0f345061117bfafbf64d39
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I36f42ac5e8d1d806cd69c96ef215bb6b04a32dd8
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PKM format is easy to generate via f.ex. Android's etc1tool and
most GLES2 drivers come with support for GL_OES_compressed_ETC1_RGB8_texture,
making ETC1 ideal when targeting embedded/mobile.
Tested with Mesa (Intel, GL ES 3.0) and etc1tool.
It is important to keep in mind that mipmap generation may not be supported for
compressed textures, depending on the driver.
Change-Id: I8b0ff7b44a6684be714507f6c3e201493b60e57c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
If the format is already the correct unsized, GLES2 compatible format,
then there is no need to warn.
Change-Id: I1a76436a2c360e2ec5f182b3e3e3b3dcfbd6118d
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Removed RenderTextureProvider which was never used
* Add cleanup method in TextureImageData to reduced memory consumption when
waiting for the object to be recycled by the resources manager
* Improved the TextureDataManager to keep track for each functor of all the
associated TextureImages which allows to release TextureImageData that we
don't need to keep
Change-Id: Id805fc0e7ef8d7c586eb77382bc66cd5e4cc8107
Task-number: QTBUG-47223
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Probably needs more texture formats down the line
Change-Id: I8ba4a89f21386ab56a6e77feb7ef7cb29ad94694
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
set to true which makes the texture unique
Change-Id: I4d7249b3021d95b31a5b93f086bc3aab54fe82da
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.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>
|
|
|
|
|
|
|
|
| |
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: Id2312ad96f92326960283be6d2f1a0b0404fc1f9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Id8bbbefaccff1915508ec90d5342cb4799f3f022
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
OpenGL ES 2.0, unlike 3.0 and later, does not support sized formats.
Therefore RGBA8_UNorm and friends will all fail. Instead, we must map
and pass RGBAFormat and similar.
Change-Id: I37c3581fbddc8b58af7af66ba4392e57e9cb965a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
* Added LoadTextureDataJob
* QAbstractTextureProvider: maximum layers property
* Automatic QAbstractTextureProvider::TextureFormat added
* material-qml should work perfectly with that patch.
Change-Id: I3f92f13b783155798772086304a30126a4fc687d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That required a custom backend functor creator. QRenderAspect was updated to
use the correct functor.
This will provide faster lookups. Also introduced TextureDNA.
The goal is to build a unique key based on the texture properties and each
texture image (including layer position, mipmaplevel and cubemapface).
Then when applying a texture it will just be a matter of comparing hashes.
Change-Id: Ic07aea6bc1cbcb1059ec5bcdd458ccc51e1feda9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: Ia3a49da501e7acded7d99150ad64ef1a91333073
Note: also updated the cleanup method
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
This is done prior to the whole texture API refactoring.
Doc was also added, might need improvement later on but a base is present at
least.
Change-Id: I75589f14dfbfba7bc4250b2e0960670e020ed38a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I3ce4f66f9ea5abdfa1a7864eb0dd1cbed2f38305
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
It was leaked when copying a QTexture, and used without checking
if the texture supported anisotropic filtering.
Change-Id: I881fd075c844a7aca9802f2a0d211d1877683ae9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I87cbd1487de27ff04428eebeff4207fe4b958108
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Target is now set in the ctor from C++. On the QML side, there's a QTexture
subclass for each target.
WrapMode on s, t, r for texture, accessible as a grouped property in QML.
Note: I left out the static fromImage as I didn't really understand their
purpose. Please let me know what I'm missing.
Change-Id: I16f75283ae459cbd8ab2d1ec53584b3022bc965b
Task-number: QTBUG-41537
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ib16fe125e160764571775f3667cff082db921f7d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Makes the project smaller and easier to understand.
Change-Id: I2ee5f8c88a61c70b2173c2d69d62a1cd9a646141
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Using RenderNodeFunctor as creation functor
Change-Id: I0e27569a2724aa29d7aef5c70b7ce9530858167c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Note: the export is maintained for the moment because the renderer aspect
still needs to know about that class. When the QBackendNode will be introduced
and QAbstractAspect refactored, this will be removed.
Change-Id: I35144c964cd36972866cc2b80ed3ffb2709a45b9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Note: the Renderer aspect uses all those private headers, when we introduce
the QBackendNode class that will be a wrapper around those, we will be able to
remove those private includes.
Change-Id: I6240f754e6da251da158cafcf76029ae59000e05
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ifb126b8516a0d4f3bac22fdf8d8e65cf1850ba97
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Later on we may want to provide some control over the number of mip
map levels generated.
Change-Id: I9ad3da3f19e1fb169dfd0f572297bee8239058d9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
We were modifying the texture directly in the QAspectManager thread instead of
the Render thread.
Added a isTextureReset which will help us checking if a FBO attachments have changed.
Change-Id: Ia4855cdd45dffdbdc2dece3916347afeab3744db
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
This prevents linker errors with dynamic OpenGL builds.
Change-Id: I966b6607ed031fa5e145510b023c8ecafc74bea3
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
m_gl is allowed to be NULL, so its usage should be guarded.
But the call made at that point made no sense: destroying a
QOpenGLTexture object also releases the underlying GL objects,
so just remove it.
Change-Id: I82bfaf16992f94420aa9128522d9bca065adc027
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I4bd6cf5001394f85c92fc70ccd78a8a8ccd50d2c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: Idbe11d632f123499bb4e12650c04d59d76d7cb8c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
It will be built automatically by the RenderSceneBuilder in a following
patch.
Change-Id: I66c9790ffaf8c3d90d5fee5a3c54e0aea2c67217
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I6f5570ce042b8d3ef44aa76c1fd8ce3a1dde4d3c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I1afb8408e03d4b5405e8ee82d1a3b6b4364d3f5d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Added Q_PROPERTY to be able to set all values from QML.
Couldn't register QOpenGLTexture enums directly as QOpenGLTexture is not a
QObject so enums values where copied to Texture. A static_cast allows to
convert directly a Texture enum to a QOpenGLTexture enum.
Corrected Quick3DTexture and registered it as an extended type.
Change-Id: I1a99a2dd549722cd647cc53f60e720e0c4039df9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Separated Texture from TextureData. Quick3DTexture is a sublcass of
Quick3DNode and Texture. This is part of a serie of patches aimed at specifying
how Uniforms and Textures are going to be defined from QML.
Change-Id: Ia1a9acfc4d9b07299a103bdbbffcc34aa4b79177
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Allows RenderClass to be used by the ResourcesManager
Change-Id: Icad9d26649858bc4a1c1dd61a233a4a46f5163ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I15a4a472f5283c56c8185b05699e33368c45ddb0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I636442d2d71342fd248b90674176cede895feab2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I6eb7c66cb96956e3cb3e1d319a82a08a0fd3c37a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
For now the renderer aspect is still compiled into the Qt3DCore library.
This needs to be split out into a plugin so it can be loaded
dynamically along with other future aspects.
Change-Id: Iba8402b35c7ebc1c503d438c87aad77f5fef2261
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|