summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Make default geometries viewsMike Krus2020-02-2798-320/+528
| | | | | | | | | | In Extras, make QTorusMesh and others a QGeometryView rather than a QGeometryRenderer. Requires changes to scene graphs here and there but going forward there simple shapes could be used as proxies for picking or collision detection, etc. Change-Id: Id488e064080dfd303e448aba11e6b242236b81d4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Geometry refactoringMike Krus2020-02-2735-610/+590
| | | | | | | Move QBuffer, QAttribute, QGeometry to Qt3DCore. Change-Id: I59dfd091eefadcada93350b3aba955f40b304385 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix C++17 buildMike Krus2020-02-251-9/+15
| | | | | Change-Id: Iaf4749da34871e0d6d0f1e7672a236f790c57b42 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge remote-tracking branch 5.15 into devMike Krus2020-02-174-10/+188
|\ | | | | | | Change-Id: I2777f6a40b9029ef5569a84e04f9e18a914504e7
| * Add ability to dump job graph to dot fileMike Krus2020-02-141-1/+1
| | | | | | | | | | | | | | | | | | Can be triggered from the overlay API and using sending a "dump jobs" command to the aspect engine. Gets saved in the current working directory. Change-Id: I19fc94a1215187c1d7eb9d1f3b13b968939cc917 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * Destroy FBOs when RenderTarget node is destroyedPaul Lemire2020-02-131-0/+42
| | | | | | | | | | | | | | | | It appears we never destroyed FBOs which lead to bugs when destroying and recreating a RenderTarget Change-Id: I507b045d9b9e1088ff49f719c8846cc43c4fc8f2 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * Shader fixesPaul Lemire2020-02-131-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | - Make sure that shaders marked for destruction are un marked from destruction if recreated before having been destroyed. - When loading shaders, make sure the shader wasn't already loaded when loading it. This can happen is a shader is abandoned and then re adopted. Change-Id: I04597479d782bc6d31e4c7f78425c02c31217c7e Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * Animations: handle colors as vec3 or vec4Paul Lemire2020-02-121-9/+105
| | | | | | | | | | Change-Id: If450816fadce4adad4881938ecaea9c4000afe16 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Remove QBuffer::syncData propertyMike Krus2020-02-122-17/+0
| | | | | | | | | | | | | | | | Wasn't doing anything since 5.14, now pointless since there's no longer a loading functor Change-Id: I90d8884cf87b492cf966f99ef8d339f25a1fc35e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Hide deprecated functor APIMike Krus2020-02-124-98/+2
| | | | | | | | | | | | | | | | | | | | Now private for QTextureGenerator and QGeometryFactory updates. QTextureImageDataGenerator remains for now as it was not previously deprecated and, mainly, it's the only API to get data into an image. Consequently, QAbstractFunctor has been un-deprecated. Change-Id: Ie6691bc402ad603d63abcf1ec9fc3513091f5740 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove buffer functor APIMike Krus2020-02-119-167/+0
| | | | | | | | | | Change-Id: I78cc60ff634f909111b891d5b9716e19cae35f3b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove old dead codeMike Krus2020-02-116-458/+0
| | | | | | | | | | | | | | No more dubious agricultural jokes Change-Id: If293ed080fc31c51f71d8632383eb7b5bb68ffb1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove deprecated classes and functionsPaul Lemire2020-02-11153-8649/+1460
| | | | | | | | | | | | | | Mostly old messaging API Change-Id: I17eb2206b2ede56d2f7d36375d5e711d6149019f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Merge remote-tracking branch 5.15 into devMike Krus2020-02-07160-1594/+3620
|\| | | | | | | Change-Id: I731aa986e1cc45b3af920db1a23f256927beecf7
| * Merge "Merge remote-tracking branch '5.14' into 5.15"Mike Krus2020-02-062-7/+37
| |\
| | * Merge remote-tracking branch '5.14' into 5.15Mike Krus2020-02-052-7/+37
| | |\ | | | | | | | | | | | | Change-Id: I76b7e29d240b89e27ef509b30cc3cd622f281fc9
| | | * Fix stale Entity cachesPaul Lemire2020-01-312-12/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure we mark the internal state as dirty when Entities get cleaned up. We could otherwise end up with stale caches referencing Entity's that have been cleaned up (referencing null bounding volumes ...) Change-Id: Ia2d2c67f8635e28690f33c0a7d4c9ff1de0eb471 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | | tst_qresoucemanager: add test to make sure cleanup is workingPaul Lemire2020-02-061-0/+21
| | | | | | | | | | | | | | | | | | | | Change-Id: I5006778b74fee6d030f65deaba86bb38a7a0a86b Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | | Remove QtGui module path from OpenGL related pathsMike Krus2020-02-063-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many are moving to opengl module in qt6, will make merging easier. Change-Id: I0ad08510e6999a5d887d9197fe2cb0dc21919fb9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Move classes in OpenGL renderer plugin into an OpenGL namespacePaul Lemire2020-02-0517-210/+219
| | | | | | | | | | | | | | | | | | | | Change-Id: I5314da1df7fbfd1b6db4412e7bc71231525d9de2 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | | Make the OpenGL renderer a pluginPaul Lemire2020-02-0547-158/+309
| |/ / | | | | | | | | | | | | | | | | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | ResourceAccessor: make it work with the modular renderer architecturePaul Lemire2020-02-031-4/+12
| | | | | | | | | | | | | | | | | | | | | This makes Scene2D work again. Tests restored as well. Change-Id: I4082d362c999a674be2debc297d59075f4b7c9e9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | QShaderProgram: add a format propertyPaul Lemire2020-02-032-2/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Introduce a GLShader classPaul Lemire2020-02-036-357/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | Add dedicated managers holder for GL ResourcesPaul Lemire2020-02-032-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | tst_filtercompatibletechniquejob: fix unregister in case context creation failedPaul Lemire2020-02-031-1/+2
| | | | | | | | | | | | | | | Change-Id: I7988ab2c918ecca694df996cc95cd9730d69a6cd Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | tst_filtercompatibletechniquejob: skip test if unable to create contextPaul Lemire2020-02-031-0/+14
| | | | | | | | | | | | | | | Change-Id: I79bfa9f14518427bc1211cc48f6561906b1653ce Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Deprecate functor APIsMike Krus2020-01-3117-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecate functor based APIs for buffer generators, geometry factories, texture data generators and mesh loaders While these are useful for some of Qt3D's internal mechanisms, they complicate some of the backend operations. Will delete some or make them private in Qt6. Change-Id: I64eaa338e0306647867d2084819ef8591e2c91c0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Unit tests for qschedulerPaul Lemire2020-01-283-1/+210
| | | | | | | | | | | | | | | Change-Id: Iaa26160736bc6b92ecf0be767cb289d776cf46ad Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | QMouseDevice: add updateAxesContinuously propertyPaul Lemire2020-01-282-4/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default behavior is to only update axes when one of the mouse buttons is pressed. This property, when enabled, allows to record X/Y axes value changes regardless of the state of the mouse buttons. [ChangeLog] QMouseDevice add updateAxesContinuously property Change-Id: Ib54a1e54c6c278ea08722760c2d317ec46437b2f Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | Clean up tracing codeMike Krus2020-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Removed some old optional timing code. - Separated jobsDone into 2 parts since, on single threaded rendering mode (ie macOS), the render aspect blocks until the next vsync which confuses tracing Change-Id: Icb641e3f8079da2cb9af0416b0f7c4dc4dd36c3c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Merge remote-tracking branch 5.14 into 5.15Mike Krus2020-01-252-0/+10
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | * origin/5.14: Fix usage of C++14 features Use animation rather than event to drive simulation Fix for incorrect QML property names in GeometryRenderer doc Add viewAll support for orthographic projection mode Change-Id: I397bdee907389a6f5cabb8390a805fa9a89ed4ca
| | * Fix usage of C++14 featuresMike Krus2020-01-141-0/+4
| | | | | | | | | | | | | | | Change-Id: Ibd460eceafdd29d7d88ac2418496dc7002de1095 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * Use animation rather than event to drive simulationMike Krus2020-01-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using events can be problematic as they contribute to flooding of the event queue leading to issues with running animations. So we now use an actual animation which runs in a loop and triggers every 1ms (rendering still vsync locked though). If animation have not been enabled for the qt build, we fall back to using events as before. Tests were changes since frame progress is no longer driven by events, so processEvents does not trigger a frame update. Change-Id: I89b11862ef432dffae0c3dfb140eedd61754697e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Fix deprecation handlingMike Krus2020-01-1419-226/+70
| | | | | | | | | | | | | | | | | | Change-Id: If981333f7a3d78028d4f08c59867453d4192b955 Task-number: QTBUG-81058 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Remove use of messages for RayCasterMike Krus2020-01-131-42/+13
| | | | | | | | | | | | | | | Change-Id: Ibe0b38df62700608135788331adfcb7fa28159a7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | QSortPolicy: add Uniform sorting modePaul Lemire2019-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to perform uniform minization between adjacent render commands all the time. Since this can yield to a higher CPU usages (but more efficient rendering submission), we now make this step optional. [ChangeLog] QSortPolicy add Uniform mode (to control whether uniform minization should be performed) Change-Id: I5c0e0dba22400a9884ee1d75426fd76b073fdcb5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | Move AspectCommandDebugger to system service, activate command executerMike Krus2019-12-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-162-30/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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-144-13/+46
| |\| | | | | | | | | | Change-Id: I5a5b1d497430afdd0fe11933832a2477a7efbe30
| | * Merge remote-tracking branch 'origin/5.14.0' into 5.14Qt Forward Merge Bot2019-12-131-1/+1
| | |\ | | | | | | | | | | | | Change-Id: Ibf5f508eec94be4bae2df3ce2e1511de696dcd72
| | | * Fix OnDemand rendering with Scene3Dv5.14.0-rc2v5.14.0Paul Lemire2019-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * | Fix picking with primitive restart for line loopsMike Krus2019-12-131-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * | 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>
| | * | Fix picking with primitive restartMike Krus2019-12-091-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | 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-136-116/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-132-4/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | | Make tracing a runtime optionMike Krus2019-12-132-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-092-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-071-1/+1
| |\| | | | | | | | | | | | | | Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33