summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* evaluateClipAtLocalTime: prevent negative indices for keyframes lookupPaul Lemire2020-09-181-1/+1
| | | | | | | Change-Id: I811c1a7334674d670f42eb46195e2e0e23b690f3 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 0731f8b336a6792e344dfefad8b7e9c79afac2d2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve third-party license information about assimpKai Koehne2020-08-276-14/+255
| | | | | | | | | | | | | | Assimp actually bundles a whole lot of other libs and tools. Document them properly. [ChangeLog][Third-Party Code] Also document sub-projects that are part of the Assimp project: Clipper, irrXML, Open3DGC, OpenDLL-Parser, Poly2Tri, RapidJSON, Unzip, Utf8Cpp, and Zip. Change-Id: I3ae696f081a6c7cee89e5901b2036da2f41a7417 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit d8b98b3e236bb2dcec0b8082d9a59c54efc63bca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Initialize pointerMike Krus2020-07-031-0/+1
| | | | | | Task-number: QTBUG-84905 Change-Id: I4eca9e609ea589e651de727fe5749c1deaaa34c9 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Animation Handler: assign iterator on erasePaul Lemire2020-06-301-3/+3
| | | | | | | Change-Id: Ia65be6befec3aa07080650ad82c59053b6d3670b Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 809ef32b3901213dcd0576a77eb507a06ba55ff3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Delete offscreen surface when doneMike Krus2020-06-291-0/+2
| | | | | | | | Task-number: QTBUG-84905 Change-Id: I2c9ddcf415e3f7565c1ba606adb3ab4c6eadfebb Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit a2f1ee50bb5f25a92d6f1ede0438a1d236f8ba67) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use surfaceSize as this will always be validAndy Shaw2020-06-021-1/+1
| | | | | | | | | | | | This fixes an issue when resizing a Scene3D that is inside a QQuickWidget to ensure that it has something rendered in each frame. Fixes: QTBUG-83095 Change-Id: Ic6c8b1b2efd0757f9f88768aafb331c4c1a1f9f2 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 2e3607aa120324f60832ca1cd42aaeaf22cc148d) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Release rendertargets on destructionPaul Lemire2020-05-143-0/+10
| | | | | | | | We were only releasing them at runtime if they changed, but we should also clean them up before we are destroyed. Change-Id: Ibc3f37fba92e8be8381fd869af7f5747da87038a Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix scene3ditem to register optional aspectsPaul Lemire2020-04-151-4/+0
| | | | | | | | | | | applyAspect shouldn't not be checking against the m_aspects list following the recent refactorings introduced in cdc9efb609894298d8d854a0ec75f9cb8e89f195. This checks prevents any optional aspect from being used because m_aspects will never be empty. Change-Id: I6548d86599b3ac4c8aaad034a3e4ffc830a855c5 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Implement Mouse Click and Double Click on MouseHandlerMike Krus2020-03-242-3/+5
| | | | | | | | Looks like it actually never worked. Task-number: QTBUG-75219 Change-Id: I54e7c58be57c41461c95c48ec3e76aa45bf340a1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Allow for when a Scene3D item switches screensAndy Shaw2020-03-197-211/+123
| | | | | | | | | | | | | | | | | | | | When a Scene3D item switches screens then it will need to be reinitalized so that the supporting contexts, offscreen surfaces are set to use the same screen and not the original one. This ensures that the item is still rendered correctly on the new screen. This includes a manual test using QQuickWidget in separate windows that enables it going from one screen to the other. This is a fresh version after the previous version was found to have a bug shown in the scene3d-loader test which has now been resolved. Change-Id: I3c711e894018db52ec00a8a5d2e0fb0128743ab1 Done-with: Antti Kokko <antti.kokko@qt.io> Fixes: QTBUG-79192 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 4eef300be70509a208527bf164f7746fa1bf07a1)
* Animations: handle colors as vec3 or vec4Paul Lemire2020-03-191-4/+12
| | | | | Change-Id: If450816fadce4adad4881938ecaea9c4000afe16 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix and improve FBO handlingPaul Lemire2020-02-175-31/+99
| | | | | | | | | | | | | | FBO need to be rebuild when one of the attachments directly or indirectly changes. By direct change we mean one of the FBO attachment texture being resized or the list of attachments changing. By indirect we mean when texture resource is recreated internally by the engine. Failure to handle this cases resulted in FBO referencing invalid attachments. Change-Id: I8dd4c08e464eed7fb0eeefd61a4158304ab4245f Task-number: QTBUG-64757 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Destroy FBOs when RenderTarget node is destroyedPaul Lemire2020-02-177-1/+89
| | | | | | | | It appears we never destroyed FBOs which lead to bugs when destroying and recreating a RenderTarget Change-Id: I99b3df95b821670aa3bbd63209ff9bcc21afbf79 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Shader: make uniform block accessors constPaul Lemire2020-01-272-33/+30
| | | | | | | To prevent any container detaching Change-Id: Ie7de744fd492efaab49aa133a7904b293dc7d178 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix picking with primitive restart for line loopsMike Krus2019-12-131-26/+31
| | | | | | | | | Previous fix was not closing the loop on every primitive, just the last one. Task-number: QTBUG-71919 Change-Id: I22d52258477b0c4777118ee36a0b3868da982885 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix picking with primitive restartMike Krus2019-12-134-2/+22
| | | | | | | Task-number: QTBUG-71919 Change-Id: If7923fab6c43f5d7139d1bbdceb73c17bf489099 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 69789d0184ffa54c1760ad5204bb4539c9399753)
* QNode: stop using hash<node,connection> for bookkeepingPaul Lemire2019-11-042-9/+17
| | | | | | | | | | | | | | | It is totally valid to have actually the same node used for 2 distinct connections (e.g setting 2 different node properties to the same node). With the hash, the second setter call would overwrite the first connection resulting in leaving a dangling connection around potentially resulting in crashes. Instead use a QVector<pair<node, connection>> and adjust code accordingly. Change-Id: I49870c409c3f7b629c8f1bdfcb8757a904db2490 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 906f8a62f89a7ce2343a155e6db62616e66dc14b) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Ensure we can build assimp on Windows and macOS with non gcc compilersAndy Shaw2019-10-231-1/+1
| | | | | | | Fixes: QTBUG-75145 Change-Id: Ibee7d877bf78c2d2ed74ac8a89b7af5bf22f14f1 Reviewed-by: Antti Määttä <antti.maatta@qt.io> (cherry picked from commit b18845b0451cf0ff9c7611483b589ce51b3c9e1b)
* Renderer: check context thread before destroying resourcesPaul Lemire2019-10-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Only try to cleanup the resources if we know we are called from the right thread. releaseGraphicsResources can be called from 2 places: - Scene3DCleaner when using Scene3D (when closing the window) - AspectThread when the RenderAspect gets unregistered In configurations where the context lives in the main thread (Scene3D + single threaded render loop / ANGLE), the RenderAspect gets unregistered before the Scene3DCleaner has had time to call releaseGraphicsResources. This means that we won't release the resources ourselved and that the driver will have to do that for us. This has been fixed properly in 5.14 with the AspectThread removal. Task-number: QTBUG-60971 Change-Id: I49c1c2f74ad09e7162b988f87bac65863f8490d8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> (cherry picked from commit f60a57ebe0e9a4449fb0f8f28a38c0f69b3f845e) Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make sure right screen is set on QOpenGLContext and QOffscreenSurfaceAndy Shaw2019-10-149-0/+34
| | | | | | | | | | | When the Qt3D window is on a specific screen, then it needs to ensure that any supporting QOpenGLContexts and QOffscreenSurfaces are set to be using that same screen or it will fail to render the content. Change-Id: Ief4f3e88bf6f71862bc5dace0cb0bddcdf3a98b5 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 93aa379ae5cf624f024aa9173ce42e90b5c58002)
* Fix blitting to also blit depth and stencil buffersPaul Lemire2019-10-101-1/+2
| | | | | Change-Id: Ib7b491c638508cfcdfbd523fd4e6a3d757c2c832 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add a property map job in animation aspectJuan Jose Casafranca2019-09-2310-37/+253
| | | | | | | | | | | | | | | | | ClipAnimator is always dirty because at each frame the normalizedTime is changed. This has a big performance penalisation as we are launching job which updates the property map at each frame. This patch adds a new dirty flag which is use to decide if the animator need to update the mapping of the fcurve to actual node properties. Using that flag, a new UpdatePropertyMapJob is launched for dirty clipAnimators. Some scenes boost from 30fps to 60fps (vsync) during animation. Change-Id: Ic8a8db01535c55995bc569ea5a69660a40014401 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Minor fixes for QSprite* classesMichael Brasser2019-08-303-6/+6
| | | | | | | | * Fix off-by-one errors * Allow non-integer cell sizes Change-Id: I081cb5050a6805cbc9183fb2a7a1ee07b5594187 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Update MetalRoughMaterial documentionMichael Brasser2019-08-291-3/+3
| | | | | | | | These properties are not strongly typed. Change-Id: I02c8b793cc7b7f9e88a8b8598ea27efa93fa0468 Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix LerpClipBlend QML documentationMats Honkamaa2019-08-271-3/+3
| | | | | | Task-number: QTBUG-74682 Change-Id: I346d31333f4bbce9a909798c176ad09fc2267859 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add QML documentation for ClipBlendValueMats Honkamaa2019-08-261-0/+11
| | | | | | Task-number: QTBUG-74683 Change-Id: I821e52ab071b422c1e1351d59b83e9879fa2a884 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Allow multiple instances of a few render statesHarald Vistnes2019-08-265-14/+29
| | | | | | | | | | Allow more than one instance of BlendEquationArgumentsMask and ClipPlaneMask render states. Task-number: QTBUG-77735 Change-Id: I9d2bdc82843e2eaf0f8a781208e4ca10e3a777c7 Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add missing * for SkyboxEntity QML type documentationMats Honkamaa2019-08-261-1/+1
| | | | | | Task-number: QTBUG-77789 Change-Id: I3dcee435562c86ea9db98ee7c50a42d06bd576f9 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Expand QCamera::exposure documentationMichael Brasser2019-08-201-0/+20
| | | | | Change-Id: Ia844b046720b530fbb9b7bac096d1853710225c3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Expand EnvironmentLight documentationMichael Brasser2019-08-201-3/+31
| | | | | Change-Id: Ia6e6ca65469c7c04914fbb6a73f796ec86436577 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Matrix_SSE/Matrix_AVX2: fix mapVectorPaul Lemire2019-08-202-16/+12
| | | | | | Change-Id: I4584d2c879a72eccbaf273d0e84b3b6f6bb55295 Task-number: QTBUG-77675 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Improve documentation of ObjectPickerJean-Michaël Celerier2019-08-071-0/+2
| | | | | | | Add a reference to Scene3D hoverEnabled Change-Id: I59e282a985ae5af30ff22d7caf433fb3b7cd821b Reviewed-by: Mike Krus <mike.krus@kdab.com>
* GLTexture: glTexParam is not supported on multisampled texturesPaul Lemire2019-08-071-0/+7
| | | | | | | So try to avoid performing these calls on such texture Change-Id: I051fd6a0150d07656687a1f84756d8a3d506ec24 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* submissioncontext fix: devicePixelRatio is not an integerPaul Lemire2019-08-071-1/+1
| | | | | | | | Converting it to int would cause the viewport not to take the whole expected size as the interger conversion would essentially floor the value. Change-Id: Ic608b0e1a0910aadb8b98c3225f999cba6326535 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Improve SortPolicy documentationMichael Brasser2019-08-051-3/+16
| | | | | Change-Id: If7759ce872d26087d181eefe24504409aa779ea9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* ShaderData: don't call markDirty(AllDirty)Paul Lemire2019-07-241-1/+1
| | | | | | | | But only markDirty(ParametersDirty) as that's the only thing this is affecting. Change-Id: I450d013dc266ca70ca51cfa866b731a6e8b6499a Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add QML documentation to QSkyboxEntityPaul Lemire2019-07-241-0/+45
| | | | | | Change-Id: Id82777c111827e8db8924d2d39b5844386344b69 Task-number: QTBUG-76767 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Provide more detail in *Light documentationMichael Brasser2019-07-234-0/+63
| | | | | Change-Id: I8d56836f1f075c7239b262454131062c10058026 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Silence warnings about null textures in uniformsMike Krus2019-07-221-0/+6
| | | | | | | It's common while textures are loading Change-Id: I360c88c72fbd0a034aff07451fd49be17b348d40 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Renderer: use last known good surface to reset render statesPaul Lemire2019-07-191-1/+1
| | | | | | | | | | | | | | | | | | | We were instead checking against the last surface used (which could be null) instead of the last known good surface to reset the render states. This could result in not resetting the render states and keeping dangling pointers around. To know if we can render, we check find the first non null surface in the list of RV. In most cases we can safelly assume that if first RV has a surface, all following ones will likely use the same surface. If we have no good surface we skip the rendering. However in the case you have a FG where the first RV has a surface but not the last one (which wouldn't really make sense but can happen if you mess up), we could end up in the above case where surface is nullptr though we have partially rendered something for the RV which had valid surfaces. Change-Id: I902b8c7a943ad2ca7e2f487873f73990cf8db433 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Align RenderView::buildComputeRenderCommands with buildDrawRenderCommandsPaul Lemire2019-07-191-3/+14
| | | | | | | State and parameter handling are the same between the two branches Change-Id: Ic8394a969184daead33253c9303c20ecf1a97484 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderStates: fix override of nested RenderStatesPaul Lemire2019-07-187-14/+33
| | | | | | | | | | | | | | When merging states, make sure we don't add several states of the same types with possibly different values. We should only add states with type we don't already have. Since the FG traversal is done from leaf to root, we know that the states we already contain should override any state that may have been specified higher up in the FG branch. Change-Id: I9bd1eadd37e8addf740a4b85b2318f9be269fedb Task-number: QTBUG-76766 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Document an example of how textureScale might be usedMichael Brasser2019-07-157-0/+51
| | | | | Change-Id: Iead857526a06b104080ab843b26c49efc22f05cc Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QRay3D: normalize the direction vector internallyPaul Lemire2019-07-151-4/+4
| | | | | | | | | It can be created with a non normalized dir vector but we should always perform the computations with a normalized dir vector for correct results. Change-Id: Ie9108de7ed2092f6b979a70ad9391267fe6c4696 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Take shortest path on quaternion slerpJuan Jose Casafranca2019-07-153-12/+38
| | | | | Change-Id: I4499e945481a22adfbafcc82198f7c411d04301b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Joints: remove removed joints from dirty listPaul Lemire2019-07-153-0/+8
| | | | | | | | | In case a joint is added and destroyed within the same loop of the event loop, we need to remove it from the list of dirty joints to process as this otherwise results in an assert. Change-Id: If2f4ece6e2d69a7801ce9c4ec2cb732f48895ad1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Expand documentation for CameraMichael Brasser2019-07-121-15/+88
| | | | | Change-Id: Id886decd4f2bd83a2319b4ad792a15b7280cb448 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Doc: Fix typo in property namePaul Wicking2019-07-101-1/+1
| | | | | | | | | colorbuffer -> colorBuffer Fixes: QTBUG-76342 Change-Id: Ic63ac9b333710ebab17aa7c4ccd9e864f10e6fcf Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Document unit for FrameAction::triggeredMichael Brasser2019-07-031-2/+2
| | | | | | Task-number: QTBUG-74165 Change-Id: I4d3de42cddd8f6e1e6729cc16a52e135ab7fa3b1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Doc: Update code samples in 'Qt 3D Render Framegraph' documentationTopi Reinio2019-06-171-47/+81
| | | | | | | | | | | | The code snippets were outdated, referring to QML properties that do not exist. In particular, the Deferred Rendering section contains code that was based on an example that's since moved into tests. Adapt the code to match the updates done to that example and also mention where it originates from. Task-number: QTBUG-73024 Change-Id: I9ec750d05f8e853e5614f33dadcbe44a0b42e356 Reviewed-by: Paul Wicking <paul.wicking@qt.io>