summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Start work on handling shaderswip/rhi-rendererJean-Michaël Celerier2020-01-1565-9080/+425
| | | | Change-Id: Id39cda016c4fa588cded896faaf2a976691a17f6
* First triangleJean-Michaël Celerier2020-01-1527-1334/+2304
| | | | Change-Id: I1db75f3840c2776acfb18c1907dc7d868e8bfba4
* Some renamingJean-Michaël Celerier2020-01-1520-29/+29
| | | | Change-Id: I3256b1c18dcfb015648b7be4ad0c3cfff023f6f9
* Add support for multiple surface types in Qt3DWindowJean-Michaël Celerier2020-01-152-3/+30
| | | | Change-Id: I3ec6745dfe048c80d5856a008fad3ed8b6b8b8fb
* Initial creation of RHI plug-in and refactoringJean-Michaël Celerier2019-12-2683-1/+25033
| | | | Change-Id: Ifbb51003e15f798798040597b5f7224641e8147c
* Use QT3D_RENDERER env var to load different renderer pluginsPaul Lemire2019-12-191-1/+7
| | | | Change-Id: Ib66ebc77f4926b2ea1e956762ec0f286162a95e6
* Move classes in OpenGL renderer plugin into an OpenGL namespacePaul Lemire2019-12-1993-413/+647
| | | | Change-Id: I5314da1df7fbfd1b6db4412e7bc71231525d9de2
* QShaderProgram: add a format propertyPaul Lemire2019-12-197-3/+182
| | | | | | | | Can be either GLSL (default) or SPIRV at the moment. This variable will be used by the rendering backend to know what type of shader code was provided (e.g with Vulkan, the GLSL could be internally converted to SPIRV) Change-Id: I1f9b734a675c581ef0721edc4464e466a18afbb0
* Make the OpenGL renderer a pluginPaul Lemire2019-12-19258-524/+1685
| | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151
* ResourceAccessor: make it work with the modular renderer architecturePaul Lemire2019-12-1810-85/+125
| | | | | | This makes Scene2D work again. Tests restored as well. Change-Id: I4082d362c999a674be2debc297d59075f4b7c9e9
* Renderer: stop passing buffer type aroundPaul Lemire2019-12-183-15/+11
| | | | | | It only make sense to pass it for the bind call Change-Id: I8f0cd204c109b2ff24f4eec320811b6cecaf3873
* Introduce a GLShader classPaul Lemire2019-12-1834-1071/+1256
| | | | | | | | | | | | | | | GLShader is renderer specific shader implementation for OpenGL. Shader now contains only backend information for a QShaderProgram frontend node. - Similar to the GLTexture handling, a generic adopt/abandon manager for shaders was introduced (regardless of the actually GraphicsAPIShader class). - The renderer and renderviews were adapted to the new changes. This was the last major thing preventing the modularisation of the QRenderAspect and renderers Change-Id: If671d60928b433977e9d6e5c58199827f9408a3f Task-number: QTBUG-61151
* Add dedicated managers holder for GL ResourcesPaul Lemire2019-12-1825-211/+356
| | | | | | | | | | | That way NodeManagers only refers to managers holding nodes (so can be used by aspect and all renderer) and GLResourceManagers refers to renderer specific resources. Note: the Scene2D resourceaccessor was making direct access to GL resource through the managers, this has been commented and will be restored later Change-Id: Ic32784f60eac35aab8c066d1769f078639fa25b8
* Merge branch '5.15' into devPaul Lemire2019-12-18363-3077/+6114
|\ | | | | | | Change-Id: I731aa986e1cc45b3af920db1a23f256927beecf7
| * Merge branch '5.14' into 5.15Paul Lemire2019-12-184-26/+14
| |\ | | | | | | | | | Change-Id: Iee3ca407250b942208f3beaf21d0e58a632f1095
| | * Bump versionDaniel Smith2019-12-161-1/+1
| | | | | | | | | | | | Change-Id: I3133bec3cbc75ced6b5bac0574aeb28bff9098d7
| | * RenderViewBuilder: fix leak with EntityRenderCommandDataPaul Lemire2019-12-164-26/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EntityRenderCommandData would only be released in a separate job than the one it was allocated in. However this would only happen if there was at least a single renderable objects after filtering. In case there was no renderable following filtering, the EntityRenderCommandData was leaked. To fix the issue and make it less error prone, we now switch to using shared pointers to avoid having to handle all possible leak cases with raw pointers. Change-Id: I842d50d2b35ebba8303f6d6c4e72a2427ce31da3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | Expose number of jobs is last updateMike Krus2019-12-174-5/+10
| | | | | | | | | | | | | | | | | | | | | Useful for tracking amount of work done Change-Id: I1d6e0394c35fffc4b33991373e4d16e4651987c7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Move AspectCommandDebugger to system service, activate command executerMike Krus2019-12-1713-98/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Always compile in AspectCommandDebugger and CommandExecuter - AspectCommandDebugger start when QT3D_COMMAND_SERVER_ENABLED is set - System information service becomes entry point for commands from the debugger - Added commands to enable and disable tracing Change-Id: Ic0d7fe72fa8a118a43ca348ca4284595a71827a4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Update textures and disables in postJobsMike Krus2019-12-164-52/+14
| | | | | | | | | | | | | | | | | | | | | | | | Work was done in postFrame() in main thread anyway, so reduce amount of jobs slightly Change-Id: I8bbb3efcaf9246eb8df1033bde133bc16233f889 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-1424-79/+278
| |\| | | | | | | | | | Change-Id: I5a5b1d497430afdd0fe11933832a2477a7efbe30
| | * RenderView: fix leak with m_statesetPaul Lemire2019-12-131-0/+1
| | | | | | | | | | | | | | | Change-Id: I368935178c285b9beb609083b93ae4621c70e28e Reviewed-by: Mike Krus <mike.krus@kdab.com>
| | * QText2DEntity: Support display of empty stringsVolker Enderlein2019-12-131-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DistantFieldTextRenderer of a QText2DEntity was not properly updated for empty strings. The dereferencing of previous QGlyphRuns needs to be done before the number of DistantFieldTextRenderers is adjusted as a DistandFieldTextRenderer may be the parent of a QTextureAtlas that is referenced by a Glyph. Task-number: QTBUG-80569 Change-Id: I0dba8b749148bef088864dc7200ae0513965745a Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * Merge remote-tracking branch 'origin/5.14.0' into 5.14Qt Forward Merge Bot2019-12-138-12/+91
| | |\ | | | | | | | | | | | | Change-Id: Ibf5f508eec94be4bae2df3ce2e1511de696dcd72
| | | * Fix OnDemand rendering with Scene3Dv5.14.0-rc2v5.14.0Paul Lemire2019-12-047-12/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using OnDemand rendering, Scene3D would lock if nothing in the scene were to change. By being blocked, it would also not process jobs for other aspects (input, logics). That would prevent things like a CameraController from running, which in turn would make it impossible to move the camera and trigger a change in the scene to request rendering. Additionally, Scene3D would ignore whether the Qt3D renderer actually needed rendering or not as it was watching on its own the changeArbiter for changes to decide whether rendering was required or not. This would ignore the case where Qt3D needs multiple frames to render a correct frame (e.g loading buffers, shaders at frame n, rebuilding commands at frame n+1) Scene3D now asks the Qt3D renderer by calling the shouldRender() function to decide whether rendering is needed or not, in addition to watching the changeArbiter. Regardless of whether rendering is needed, it now let each aspect process jobs. This ensures things like FrameAction/Input are processed. Then, Scene3D decides whether full rendering is required or whether it only has to be called to allow the Qt3D simulation loop to proceed for the next frame. If the latter, it does it so as not to have QtQuick trigger a redraw. Change-Id: I870f773c224286d6b7ec0f6045319e51e09cbf8e Task-number: QTBUG-80521 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| | | * Add changes file for Qt 5.14.0v5.14.0-rc1Antti Kokko2019-11-251-0/+49
| | | | | | | | | | | | | | | | | | | | Change-Id: I0ef3dd0006783337917677cf0b5f980ec0215081 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | Fix picking with primitive restart for line loopsMike Krus2019-12-132-32/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previous fix was not closing the loop on every primitive, just the last one. Task-number: QTBUG-71919 Change-Id: I22d52258477b0c4777118ee36a0b3868da982885 Reviewed-by: Volker Enderlein <volker.enderlein@ifm-chemnitz.de> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | Always get the estimate primitive count from the attributeMike Krus2019-12-131-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously were checking that the attribute was actually but due to refactoring the shader is not yet examined at this point. With this change, we always get the estimated number of points from the attributes. Potentially it means we're getting it from an attribute that is not being used but the user should then set the correct number on the geometry renderer anyway. Task-number: QTBUG-80697 Change-Id: Ie34131fe3ff41b34609a2f2eb95c4ff678424036 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | qquaternionanimation.cpp: Fix warning suppressionFriedemann Kleint2019-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quote the option, fixing g++ 8.3 warning about: qquaternionanimation.cpp: In member function ‘void Qt3DCore::Quick::QQuaternionAnimation::setType(Qt3DCore::Quick::QQuaternionAnimation::Type)’: qquaternionanimation.cpp:147:44: warning: missing option after ‘#pragma GCC diagnostic’ kind [-Wpragmas] QT_WARNING_DISABLE_GCC(-Wcast-function-type) ^ qquaternionanimation.cpp:148:107: warning: cast between incompatible function types from ‘QVariant (*)(const QQuaternion&, const QQuaternion&, qreal)’ {aka ‘QVariant (*)(const QQuaternion&, const QQuaternion&, double)’} to ‘QVariantAnimation::Interpolator’ {aka ‘QVariant (*)(const void*, const void*, double)’} [-Wcast-function-type] d->interpolator = reinterpret_cast<QVariantAnimation::Interpolator>(&q_quaternionNlerpInterpolator); Amends 698bd5f22c79ecf777a0abe57a36676dc49fa8f3. Change-Id: Ia68e2b5b198e658ef7ce9e930d8f3d4bd77fd2d2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Skip shouldNotCrashInNormalStartupShutdownSequenceUlf Hermann2019-12-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test is flaky on macOS 10.12 and 10.13. As it usually times out, a blacklist entry won't help. Blacklisting merely ignores the result, but doesn't prevent the test watchdog from killing the process. Task-number: QTBUG-80660 Change-Id: I6aec979e7437700e4e6596241f135622d99fd3be Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Doc: Add note about implementation specific property meaningPaul Wicking2019-12-104-18/+84
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-73095 Change-Id: I843b0376ed0e4ece6ef949acb596a0303aac977d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | QDistanceFieldMaterial: Don't scale rgb colors with distance field alphaMartin Andersson2019-12-092-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scaling the rbg colors with the calculated distance field alpha value can result in faint text and different colors across the same text. These issues are most obvious when the text is small. Change-Id: Ia12e54e3f344cb918575739a15e519e34d67e0f1 Reviewed-by: Wieland Hagen <wieland.hagen@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | Fix picking with primitive restartMike Krus2019-12-095-8/+42
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-71919 Change-Id: If7923fab6c43f5d7139d1bbdceb73c17bf489099 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Use jobsDone to sync render capture back to frontendMike Krus2019-12-1320-337/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes the jobs who's only purpose was to send a message to the frontend. Now added a jobsDone() call to render which is called from main thread when jobs are completed, so it's safe to sync data to frontend. Added a task trace for the backend to front end synching. Change-Id: I587462bea353c5d5a0065b542adcacef4dedb05f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Implement getting list of aspects from system information classMike Krus2019-12-1310-31/+57
| | | | | | | | | | | | | | | | | | | | Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Fix deprecation syntaxMike Krus2019-12-133-3/+3
| | | | | | | | | | | | | | | | | | | | Change-Id: I9fe77a56fdc754132cf5da0e3e2361f62dc9a857 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Remove device pixel ratio adjustmentsMike Krus2019-12-132-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device pixel ratio was not set on the renderview, so it was always 1. Setting it reveal a bug where the surface size was being adjusted using the pixel ratio. However, the surface size is already in actual pixels. Change-Id: Ia00b2adedb547ec4fa493e1731794d1d8b6a6a18 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Make tracing a runtime optionMike Krus2019-12-1341-361/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Moved most of the code QSystemInformationService (private class for now) - Tracing can be enabled by setting QT3D_TRACE_ENABLED or calling QSystemInformationService::setTraceEnabled(bool) - Introduced QTaskLogger class to easy logging (RAII) Change-Id: I2a3e08e4371fcee3e9ef3cf575725f13f57d1a94 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Deprecate message APIMike Krus2019-12-0931-88/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecates the message classes and the public APIs to send/receive them. (deprecates the constructors as deprecating classes breaks syncqt) Change-Id: I4908f15c3c5f1d63969a0f2e11f6ecb22e2e3748 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-0715-184/+325
| |\| | | | | | | | | | | | | | Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33
| | * | Shader: record standard uniform at loading timePaul Lemire2019-12-045-45/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids having to check for each uniform (for each frame, each geometry) whether it is a standard uniform or a user defined one. Change-Id: I76cff7869aacc1343a9acf991f8035b8118581ed Reviewed-by: Mike Krus <mike.krus@kdab.com>
| | * | GraphicsContext: remove left overs from GL command threadPaul Lemire2019-12-031-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Was needlessly creating a second glHelper instance Change-Id: Id2e7f4a7be77b52cef628ba84ae4a1ff4a3d3b2e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * | Fill as much as what we can when building the RCPaul Lemire2019-12-032-69/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids repeating that process over and over again in the submission phase. Change-Id: Ie2fa36842cd7280f7c966381238e90dd2dbaa821 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * | Adequately split work among RenderViewCommandBuilderPaul Lemire2019-12-036-37/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Try to give at least 100 entities per worker. Ideally we'd find a way to only add the required number of jobs but ThreadPooler doesn't easily allow that. Change-Id: Ieaf21b66eefd6c3e3b85b949917ea93b73834838 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * | RenderViewCommandUpdaterJob: stop copying renderables dataPaul Lemire2019-12-025-30/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the post command update synchronization job a lot faster. Change-Id: I845c39cd4e2c0e56e8eefa05bbdd20d0bc3d2454 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * | Make QThreadPooler use the global thread poolPaul Lemire2019-12-022-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This should ensure we don't have too many idling threads Change-Id: Ia533fc07140a4944a1149aca1565b0d8ae3cda22 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | | Make NodeRelationshipChange struct privateMike Krus2019-12-067-27/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Was private in 5.14, should remain so in 5.15 Change-Id: I74231d349e60f498d8ffb4ff39cc1e95fa3f0567 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Fix usages of text stream operatorsAlexandru Croitor2019-12-0611-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I8f3fe9475749f10f33c8eb750befa8845ccc37d6 (cherry picked from commit 58db7d01e0d424fdf46baa70e2e41b8009429c78) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | Add Q3D_DECL_DEPRECATED macroMike Krus2019-12-052-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This defines to empty when building Qt3D, and deprecated attribute otherwise. Change-Id: Ic36a020a7c43962ac4313efd72a941e5f74f4e99 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Refactor ViewAll to not use commandsMike Krus2019-12-046-90/+73
| | | | | | | | | | | | | | | | | | | | Change-Id: I6527c96bfdb484a0dc95565cb2533a4d47b819e7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>