summaryrefslogtreecommitdiffstats
path: root/src/render/backend/managers_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Lights phase 1: infrastructureLaszlo Agocs2015-11-261-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QAbstractLight becomes QLight and gets its own backend node. This way we can easily gather all lights for the scene and filter them when building render commands. Both the frontend and backend remain a subclass of (Q)ShaderData but will not be part of the ordinary ShaderData component list. This prevents mixing up ShaderDatas and Lights but allows reusing the same underlying infrastructure so that properties can automatically be transformed for example. It is worth noting that the position property for lights is now removed: the position is determined by the entity's (to which the light component belongs) position. A number of changes are made to ShaderData itself as backend subclassing with different managers is not straightforward. For now the distance between the rendered entity and the entity with the light component is calculated and lights will be chosen based on this distance. A framegraph node for controlling this will be added in future patches. No uniform setting or shader changes are included here. Task-number: QTBUG-48834 Change-Id: I43a6c5f9420d4254d798c558bd58680b2b09eceb Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Track whether the vao has had attributes specified or notSean Harmer2015-11-231-1/+2
| | | | | | | | | | | | | | | | In some cases the VAO was being created but there wasn't any input attributes specified on the shader at that time which skipped the specification of the attributes in updateBuffersAndAttributes(). We now track whether the VAO has been specified as part of the VAO object itself. This way, the first time the VAO is actually used to draw something we can ensure the attributes have been specified. Also skip the draw calls if the primitive count is zero. Change-Id: Iad0a1cff4677ab33369057a6000f0f4a18dc5c58 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Export EntityManager for unit testsPaul Lemire2015-11-161-1/+4
| | | | | Change-Id: I67866ea75e39a2c20b6422deb067c792cee9ff36 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Manager for BoundingVolumeDebug componentsPaul Lemire2015-11-161-0/+11
| | | | | | Change-Id: I6381480d080bb3160035b190d94a9593aad3d9ab Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Managers for backend ObjectPicker instancesPaul Lemire2015-10-241-0/+11
| | | | | Change-Id: Icb24a28be82f9fa0ca85d1a4d6e5b3f7a7c8f7e8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-21/+21
| | | | | | | | This is for consistency between the C++ namespaces and QML imports and with the other aspects. Change-Id: I73392f138b4e519b12888f52530123e3d0ba445e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-131-80/+80
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add "We mean it" warnings to private headersSean Harmer2015-10-131-0/+11
| | | | | Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderTransform -> TransformSean Harmer2015-10-131-2/+2
| | | | | Change-Id: Ide8d0d0831755b0eb5f8f724c2e7c0ed838e4b9d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderTextureImage -> TextureImageSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I12c00abc1a539b8ec8a2cbac00283b55216884ac Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderTexture -> TextureSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I083461d12e3398c10c6a41de54c3b588ecaf07fa Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderTechnique -> TechniqueSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I619637b27ae2c261b5f86193757ba45b971fed93 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderShader -> ShaderSean Harmer2015-10-131-3/+3
| | | | | Change-Id: Iafdfc44bdc97c53974a2d47834a61914be06ac25 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderShaderData -> ShaderDataSean Harmer2015-10-131-2/+2
| | | | | Change-Id: I254f2205cd1587bb599d26a087c515d526bf289b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderrenderPass -> RenderPassSean Harmer2015-10-131-3/+3
| | | | | Change-Id: Ia7eeddb8a114eef1ba3c0d2bfae7ecc8d2fcf8d1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderParameter -> ParameterSean Harmer2015-10-131-2/+2
| | | | | Change-Id: I77367f67c522d5a5bb55423501406a5f7e108b95 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderMaterial -> MaterialSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I4fed4482fe3620caed638f36a054db374a8e8942 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderLayer -> LayerSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I3da5588470de57b5ed144f60b9e28a74f96d164f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderGeometry -> GeometrySean Harmer2015-10-131-3/+3
| | | | | Change-Id: I3e7750c2f2388cd14ece6a339beafd13f31e018f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderEntity -> EntitySean Harmer2015-10-131-3/+3
| | | | | Change-Id: Ifb5f3882e9bd584536321dde97eac2c471528f27 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderEffect -> EffectSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I0c30308a609c3530119c99fe99c47782bde0c444 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderCameraLens -> CameraLensSean Harmer2015-10-131-2/+2
| | | | | Change-Id: I58e4422c265ddf7a32c0615b378c8017fe0a3461 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderAttribute -> AttributeSean Harmer2015-10-131-3/+3
| | | | | Change-Id: I459cd73f92931002c69d5f8fa8c19880e9149d25 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderAnnotation -> AnnotationSean Harmer2015-10-131-3/+3
| | | | | Change-Id: Iccf052b78a74ba03658630e061d2fa335c280dc6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-131-64/+63
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Cleanup: remove QAbstractMesh/QMeshData/MeshDataManagerPaul Lemire2015-08-111-2/+0
| | | | | Change-Id: I1f13cea4cf864dcf985d1f487e195509de9006e7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderMesh removed, replaced by RenderGeometryRendererPaul Lemire2015-08-071-13/+0
| | | | | Change-Id: If049768730a0f3aad3ea2b4f5cda2808f4035726 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move GeometryRenderManager to its own filePaul Lemire2015-08-071-11/+0
| | | | | | | This is needed to add logic for geometry functors that needs to be loaded. Change-Id: I06e59447c41ea8e08cfdb77fc94084837afebeac Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rework Renderer to use BufferFunctorPaul Lemire2015-08-071-8/+8
| | | | | | | | | | | | | | | Each buffer when it receives a new functor adds itself with the buffer manager. This then allows to build LoadBufferJob instances for each buffer to be loaded. The buffers can then be loaded before a frame is rendered. The GeometryRendererManager has been moved back with other managers and the BufferManager takes its place to handle the additional management of dirty buffers. Renderer updated accordingly. Change-Id: I5df839b56d18de077e1ff2921cb481ed8f613567 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Renderer: render using GeometryRenderer and GeometryPaul Lemire2015-08-071-1/+1
| | | | | | | | Note: This breaks rendering with QMeshData. All the default meshes will be ported to QGeometryRenderer in follow up commits. Change-Id: I33f85c079c40fa675e06c5a49fdc9029507318e0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move GeometryRenderManager to its own filePaul Lemire2015-08-071-11/+0
| | | | | | | | This will make it easier to add new properties such as a list of dirty GeometryRenderer to be updated... Change-Id: I30b07d72d373e70c0e2a96a4a47aff9cf63545a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourceManager for RenderGeometryRenderer objectsPaul Lemire2015-08-071-0/+11
| | | | | Change-Id: I9d56ca143cc772fe8e4627c872453b38e0c6fce2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourceManager for RenderGeometry objectsPaul Lemire2015-08-071-0/+11
| | | | | Change-Id: I848cb20d20e59d3fa18c6336d3649e7ad810494d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourceManager for RenderAttribute objectsPaul Lemire2015-08-071-0/+11
| | | | | Change-Id: I65a2dbd1491356ef9b5f33024b973031cd5be4d1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourceManager for RenderBuffer objectsPaul Lemire2015-08-071-0/+11
| | | | | Change-Id: Id8f2f2c5a155ac8f1d59751a8fc19f363de9c4f0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Copyright header change.Mika Salmela2015-02-091-19/+14
| | | | | | | | 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>
* TextureImageManager for RenderTextureImagePaul Lemire2015-02-081-0/+11
| | | | | Change-Id: I3a751d3357606951cc90176b6c48c4684e4f560f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderShaderData handling entirely reworkedPaul Lemire2015-01-181-0/+10
| | | | | | | | | | | | | | | | | | | | - UBO created for each Shader/ShaderData - We deal with nested QShaderData by looking for QNodeId only instead of looking for QShaderData* - We update only the values that have changed into the UBO - A CleanupFrameJob was added to properly clear all RenderShaderData set for updates after a frame - RenderShaderData is cleared of all UBO rendering logic - BlockToUBO contains all the updated properties for a given UBO in a RenderView, that solves the issue of properties being updated in the RenderShaderData while performing a draw call Note: the QShaderData transformed properties were commented for now deferred-examples and playground qml updates to follow Change-Id: I8ecf155288c154f41b505cf465d31f5eb8a71b5d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Removed RenderLight as QAbstractLight is now a QShaderDataPaul Lemire2014-12-121-13/+0
| | | | | Change-Id: I6d07ef4545f4312d6a9526a6dfd0617e9d371a5d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Manager for RenderShaderDataPaul Lemire2014-12-101-0/+12
| | | | | Change-Id: I6063567362e8d29a4a48560e625bcae6a5e89190 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename QNodeUuid to QNodeIdSean Harmer2014-11-191-19/+19
| | | | | Change-Id: I0450a4d4708af1ccd3d4c8f2ddc5c9a5c9deca27 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename QResourcesManager -> QResourceManager and make privateSean Harmer2014-11-181-21/+21
| | | | | | | | Once we are happy with the API we can make this public for a future release. Change-Id: I914f087e10adddbadac1649a8b889b9f53f82fd2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QNodeUuid: typedef for QUuidPaul Lemire2014-11-021-19/+19
| | | | | | | Should allow to easily replace QUuid by a custom quint64 based struct Change-Id: Ib4ba57efd2e070317aa3417b37ce091f2b4779a0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added ParameterManager in the backendPaul Lemire2014-10-181-1/+14
| | | | | | | Also changed the CameraManager to use the ArrayAllocatingPolicy Change-Id: Icb00e29e47c29be02cc45c2d200b8c7611a29632 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Renamed RenderCriterion to RenderAnnotationPaul Lemire2014-10-171-3/+3
| | | | | Change-Id: If19e15d2ee6a663607ba13b8ddf6dac3193948d2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Separate handle definition from Manager declarationPaul Lemire2014-10-171-25/+1
| | | | | | | | | | | | All handles typedefs are defined in a dedicated small header file that can easily be included. Those typedefs must be used when referencing a certain type of handles to avoid errors. All raw QHandle uses or redefinitions of typedefs have been removed. Change-Id: Ia6c006ede0db3be22e58dad9b3cc104029023056 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Moved most of the managers into a single header filePaul Lemire2014-10-171-0/+313
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>