summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* RenderTexture: wrapping on R is only available on 3D texturesPaul Lemire2015-02-081-3/+1
| | | | | Change-Id: Id2312ad96f92326960283be6d2f1a0b0404fc1f9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderView: remove default sorting if no sort was specifiedPaul Lemire2015-02-081-3/+1
| | | | | | | This solves the material-cpp flickering Change-Id: Id83ee9ad5e68ceeb3caf67ef48a61a431218a953 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Removed now useless Quick3DTextureCubeMapExtensionPaul Lemire2015-02-082-204/+0
| | | | | Change-Id: I1d5bbfa578cf5d9306d6614d39e20c9d4beabfa9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Skybox example updated to use new texture APIPaul Lemire2015-02-081-1/+1
| | | | | Change-Id: Ibe21febfee752e7708b909b5411e35f75ebfb9e5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractTextureProvided: Q_ENUMS on CubeMapFace enumsPaul Lemire2015-02-081-0/+1
| | | | | | | This is needed to be able to use the CubeMapFace enums from QML Change-Id: I8f081b0e920b6245931fe9589396aefa7baed4cb Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QGraphicContext: texture sharing and smart use of TUPaul Lemire2015-02-083-32/+47
| | | | | Change-Id: I4fb73ac3d03d49be121153235311dd76b47dbd4e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTexture/TextureImage: provide unique dna for sharingPaul Lemire2015-02-083-3/+48
| | | | | Change-Id: Id8bbbefaccff1915508ec90d5342cb4799f3f022 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make textures functional with GLES2Laszlo Agocs2015-02-081-7/+27
| | | | | | | | | 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>
* QAbstractAspect: Fix in createBackendNodePaul Lemire2015-02-081-0/+1
| | | | | | | Return the node when created instead of return Q_NULLPTR. Change-Id: Icdab703fc0932382ca7418ba7ce709d4bc32d992 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractTextureProvider: remove leftover methodsPaul Lemire2015-02-082-38/+0
| | | | | | | These were left for backward compatibility while the refactoring took place. Change-Id: I527339db2f58c00aaa5a5417bb914955437e0a72 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Assimparser updated to use new Texture APIPaul Lemire2015-02-081-21/+75
| | | | | Change-Id: I4c030458ecf15d9620d071573f911052fb5a6973 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove Quick3DTexture2DExtension, this is not needed anymorePaul Lemire2015-02-082-54/+1
| | | | | Change-Id: I1819216f5d8e6bd97311cf7fbece2ff7334dfba0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Texture API refactoringPaul Lemire2015-02-0822-116/+663
| | | | | | | | | | * 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>
* QResourcesManager: restore the relock on the LockingPolicyPaul Lemire2015-02-081-0/+6
| | | | | | | Why was it removed in the first place ? Change-Id: I526c9957570f18700b9eeb7f7cd061cd642e203b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Update default Material to use new Texture APIPaul Lemire2015-02-086-11/+23
| | | | | | | Breaks Texture Rendering until all following patches are merged Change-Id: Id8663d54ec39697b6c59f626b8b1aa7d5b8d8ebf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTexture: update list of texture image id to texture image handlesPaul Lemire2015-02-083-8/+83
| | | | | | | | | | | | | 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>
* Register backend functor creator for RenderTextureImagePaul Lemire2015-02-081-0/+2
| | | | | Change-Id: I1c32e555a7033e451af4c994f7b6f22556543c9a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTexture: contains list of TextureImage idPaul Lemire2015-02-082-13/+55
| | | | | | Change-Id: Ia3a49da501e7acded7d99150ad64ef1a91333073 Note: also updated the cleanup method Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* TextureImageManager in RendererPaul Lemire2015-02-082-0/+4
| | | | | Change-Id: Id6a41db8eed2874cc5a06ddc5feba6c9b0aced53 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* TextureImageManager for RenderTextureImagePaul Lemire2015-02-082-0/+13
| | | | | Change-Id: I3a751d3357606951cc90176b6c48c4684e4f560f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderTextureImage backend class for QAbstractTextureImagePaul Lemire2015-02-083-2/+189
| | | | | Change-Id: I8c4f4e06fbbc8963a7dd1f01bd22ba058a2486a7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Quick3DTextureExtension provided list of QAbstractTextureImage to QMLPaul Lemire2015-02-083-7/+72
| | | | | | | | Texture2D, TextureCubeMap still using their old extensions to not break examples for now. Change-Id: I1ad8b37acb3cb15582136be7368c94d8c7c77a4b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make ctor of QAbstractTextureProvider protectedPaul Lemire2015-02-087-35/+36
| | | | | | | That enforces to use one of the subclasses. Change-Id: Idba7300ed322954ba6866c4a262ad4ee74c024e5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* No need to depend on managers from RenderParameterKevin Ottens2015-02-083-47/+3
| | | | | | | | This way we can also get rid of the specific functor, the generic one is enough again. That's possible thanks to createBackendNode availability. Change-Id: I6ef4dc811c4304f1cf551200e1cedd9a81a53f43 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make QBackendNode use QBackendNodeFactoryKevin Ottens2015-02-0821-22/+54
| | | | | | | | | For convenience we also provide a protected createBackendNode in QBackendNode itself. From now on it should be the preferred way to deal with node resolving. Change-Id: I22f490763026848a4dc8b55c98f649c36df258a3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Introduce QBackendNodeFactoryKevin Ottens2015-02-084-2/+125
| | | | | | | | This interface will be provided by aspects and used by backend nodes when they need to resolve a frontend node to a backend one. Change-Id: I695b1c5027826377c3e5ac7d2a05ca653148b96f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Introduce QLockableObserverInterfaceKevin Ottens2015-02-0812-21/+139
| | | | | | | | | We introduce QLockableObserverInterface as an intermediate interface before the QChangeArbiter and depend on that interface whenever possible. Change-Id: Ic92efec8d68c88344bb43f8fc7dc10b1212180af Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QTextureProviders addedPaul Lemire2015-02-089-179/+415
| | | | | | | the Quick3D textures were removed to use the providers directly instead. Change-Id: Ifa5f28aa1ce8b6e5cc921ac76e6fbd80c5ea3112 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractTextureImage: add update methodPaul Lemire2015-02-083-0/+18
| | | | | | | | update send a new functor to the backend. Should be called by subclasses when the functor has been updated. Change-Id: I18f42b1d276b9b3b06de314754ba40a81f4b9f67 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add list of QAbstractTextureImages to QAbstractTextureProviderPaul Lemire2015-02-083-8/+58
| | | | | Change-Id: I3280112df9614b7142d4e15b3871518896806577 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move QAbstractTextureImage, QTextureImage to dedicated filesPaul Lemire2015-02-087-224/+428
| | | | | | Change-Id: I4650ecad1b4c07531c8cd56c11976005bb543aed Note: qtexture.h is now just a convenience include. Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Moved QAbstractTextureProvider/QWrapMode to proper filesPaul Lemire2015-02-088-868/+1161
| | | | | | | This will avoid qtexture.h/cpp becoming to large. Change-Id: I5965b6f164951d1110145defe337fab76fea2b94 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractTextureImage + QAbstractTextureDataFunctorPaul Lemire2015-02-082-43/+347
| | | | | | | | | | | | A QAbstractTextureProvider will be completed by a list of QTextureImage. Each QTextureImage provides a layer, mipmapLevel, cubeFace and source properties. Each of the QTextureImage will also provide a QAbstractTextureDataFunctor that will be used to load the actual texture data in an Aspect job as well as compared to other functors for texture sharing. Change-Id: Id17fd83da78b906d71320b629fc70f6aedb6a63e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QTexture renamed to QAbstractTextureProviderPaul Lemire2015-02-0836-295/+418
| | | | | | | | | | 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>
* Quick2DTextureCubeMap registered as an extended QML typePaul Lemire2015-02-081-1/+1
| | | | | Change-Id: I55dbb0dd52e8be84aa65d787daaec2a943bd071d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Quick3DTextureCubeMapExtension addedPaul Lemire2015-02-082-2/+205
| | | | | | | Will allow to set each CubeMapFace on a Quick3DTextureCubeMap Change-Id: Id4f4038a161e89f7f9a9083bf03066c52b504fbd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* TextureData add setter for CubeMapFacePaul Lemire2015-02-081-0/+5
| | | | | Change-Id: I91694d6b9b241d3dfe24e114455332085c99c656 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Avoid issue draw calls when the buffer is not yet readyLaszlo Agocs2015-02-041-20/+24
| | | | | | | | | | | | | | | | Follow-up to the previous VAO fix. Issuing the draw call always is wrong and even crashes some embedded devices' GLES implementation because the buffer and attributes may not yet be set up due to the condition above (when m_parameterAttributeToShaderNames is still empty). Make it conditional by drawing only if we did go through the buffer setup or the VAO is supported and available. This makes the renderer functional on plain GLES 2.0 implementations that are often found in embedded devices. Change-Id: Ib550c2321fe05c75c998ce2f38079bdd703b03d3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Do not swap when targeting an FBOLaszlo Agocs2015-02-033-4/+5
| | | | | | | | | swapBuffers() must not be called when rendering into an FBO. Otherwise we will trigger a swap for the buffers of the Scene3D's window which is definitely not what we want. Change-Id: I188ed7f3b560e88cf61804fcb4216d2428b28c73 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Cleanup a double identical check when creating VAOsGiuseppe D'Angelo2015-02-031-14/+3
| | | | | Change-Id: If8867d17b69c39d17202fdecc56cff4c3e83f7e8 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix whitespace issueKevin Ottens2015-02-031-1/+1
| | | | | Change-Id: I63289b0582e237e0d6877f01f1e7afcbc930f035 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderParameter variant must have backend nodesKevin Ottens2015-02-034-77/+87
| | | | | | | | | We receive a QVariant from the frontend which sometimes contains a pointer to a QTexture or a QSharedData. In such case immediately map to their backend counterpart and store that instead. Change-Id: Ia0ec06649c2883dfa76aee18417717a624629126 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Provide our own RenderParameterFunctorKevin Ottens2015-02-033-1/+68
| | | | | | | | | | | | It is necessary in order to have a pointer to the renderer. It will be needed to map from QTexture and QSharedData to RenderTexture and RenderSharedData. Note it makes us loose RenderParameter testability as it depends on the Renderer (and later on managers). Change-Id: I5559a2396588978406aac6b6ee27a33054ab0f79 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Don't store QRenderState* in RenderRenderPassKevin Ottens2015-02-033-102/+99
| | | | | | | | RenderRenderPass is now storing pointers to backend objects as soon as possible. Change-Id: I6f8c4b92d18bcfe726df5731b978df0606a6a81c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Don't keep pointers to QParameterMappingKevin Ottens2015-02-036-26/+200
| | | | | | | | | The backend is not supposed to keep pointers on frontend objects it doesn't own. Instead store the data in RenderParameterMapping instances as soon as possible. Change-Id: I5f0ff04f06c54c2ad0fbe483051db9974f4aedf8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Do not request 4.3 core profile on GLES in WindowLaszlo Agocs2015-02-022-2/+6
| | | | | | | | | | | | This will still fail badly with real GL on older cards that cannot provide 4.3 core, but will avoid failing with OpenGL ES at least. The issue becomes apparent with certain EGL implementations, like ANGLE. Others may successfully ignore the version number request and may suceed. The correct way is still not to request an invalid ES version. Change-Id: I2be163b579d7b23e86cd350b22a4a33551249383 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add support for rendering without a VAOLaszlo Agocs2015-02-023-41/+63
| | | | | Change-Id: Ic81e415d7f773bb79b548a6ab38ae5e7a9280bcd Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Query the current FBO id with a context currentLaszlo Agocs2015-02-021-1/+7
| | | | | | | | Otherwise we may get asserts in some configurations, in particular when using QOpenGLFunctions on the ES2 code path and there is no context current on the thread. Change-Id: Ibc2dc398a019cedac5fd2c3302b6c98b9970f60d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Allow Render(Texture|SharedData) use with variantsKevin Ottens2015-02-022-0/+4
| | | | | Change-Id: I70aedc29f09bd4c3b279b111f2295208c904436a Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Export for use in unit testsKevin Ottens2015-02-022-14/+14
| | | | | Change-Id: I550c33c6e40badc9cfeafb73f2f2e5be6404f41f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>