summaryrefslogtreecommitdiffstats
path: root/src/core
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-02-251-1/+1
|\ | | | | | | Change-Id: I68b6242afc5b6bfcc3d47ebf2032734ee126eadf
| * Revert "Replace deprecate QNetworkReply::error() call"Timur Pocheptsov2020-02-241-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit 34cb77c210316dd254a8aa27052fb03223e3f7af. Naming in QProcess is considered to be the correct one and the rule. Change-Id: I75f267b4f8dcc991b0d4945752b48de1b4e5b386 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Merge remote-tracking branch 5.15 into devMike Krus2020-02-1714-25/+140
|\| | | | | | | Change-Id: I2777f6a40b9029ef5569a84e04f9e18a914504e7
| * Show non-required jobs as dottedv5.15.0-beta1Mike Krus2020-02-171-0/+6
| | | | | | | | | | | | | | | | Jobs that are in the graph but will not be scheduled (because they have nothing to do) are showed in dashed line Change-Id: Ia5d3b1b2b17d55820965b473099c0363cb645daf Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * Add ability to dump job graph to dot fileMike Krus2020-02-147-4/+67
| | | | | | | | | | | | | | | | | | 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>
| * Add flag to jobs to indicate if they need to run or notMike Krus2020-02-1410-21/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once aspect jobs are inserted in the queue, they will always run, but some of them don't actually have anything to do at every frame. Ideally, when building a graph of jobs, you would include only jobs that are required. However this makes building the graph more complicated. This introduces a method on the private job pimple which indicated if the job actually has something to do or not. When the scheduler is ready to run a job, it will call that method. If there's nothing to do, then the job will be skipped and the dependent jobs (if any) run instead. Change-Id: Iaa8d3d064f03d8c0bab407879a9acea292a06784 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove custom deprecation macroPaul Lemire2020-02-122-7/+0
| | | | | | | | | | Change-Id: If9fdd63d58b2f9d41dc3a6c99d1dde2245506d15 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove deprecated classes and functionsPaul Lemire2020-02-11108-7313/+119
| | | | | | | | | | | | | | 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-0775-575/+1016
|\| | | | | | | Change-Id: I731aa986e1cc45b3af920db1a23f256927beecf7
| * Remove unneeded export of inline functionsFriedemann Kleint2020-02-072-5/+5
| | | | | | | | | | | | | | | | | | Fix MinGW-warings src/core/transforms/matrix4x4_sse_p.h:485:50: warning: inline function 'Vector3D Qt3DCore::operator*(const Qt3DCore::Matrix4x4_SSE&, const Vector3D&)' declared as dllimport: attribute ignored [-Wattributes] Q_3DCORE_PRIVATE_EXPORT Q_ALWAYS_INLINE Vector3D operator*(const Matrix4x4_SSE &matrix, const Vector3D &vector) Change-Id: Ib8b39c613ce05b6dc3848c1251a88eea53903212 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * Make the OpenGL renderer a pluginPaul Lemire2020-02-053-30/+11
| | | | | | | | | | | | | | | | 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>
| * Unit tests for qschedulerPaul Lemire2020-01-281-1/+1
| | | | | | | | | | Change-Id: Iaa26160736bc6b92ecf0be767cb289d776cf46ad Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * QScheduler: restore jobsDone() call at the endPaul Lemire2020-01-281-0/+3
| | | | | | | | | | | | | | Mistakenly removed in a cleanup commit Change-Id: Icfb7c370017facf6ce990430c3df1535a0a72973 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * Clean up tracing codeMike Krus2020-01-276-23/+15
| | | | | | | | | | | | | | | | | | | | - 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-3/+54
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * Use animation rather than event to drive simulationMike Krus2020-01-132-4/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Replace deprecate QNetworkReply::error() callTimur Pocheptsov2020-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | with QNetworkReply::networkError(). Task-number: QTBUG-80369 Change-Id: I6ab7e6b68b1bad33fc4c410894f6ba62d940255d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| * | Fix deprecation handlingMike Krus2020-01-148-1/+32
| | | | | | | | | | | | | | | | | | Change-Id: If981333f7a3d78028d4f08c59867453d4192b955 Task-number: QTBUG-81058 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Add commands to dump frame graph and scene graphMike Krus2020-01-093-1/+52
| | | | | | | | | | | | | | | | | | | | | | | | prints to the console, also dump the list of paths in the frame graph to help understand render views. Change-Id: Ic4756e09545971b224a239fafc6667b0ca3d4572 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Silence deprecation warnings and fix Qt for Python and documentation buildsFriedemann Kleint2020-01-033-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merely addding DEFINES -= BUILD_QT3D_MODULE to an example results in a deprecation warnings flood despite the example not using any deprecrated API since for example the flag operators and usages in the headers cause warnings by itself. Remove the deprecation from smart pointer typedefs (it should be sufficient to deprecate the pointee class) and disable warnings for usages of deprecated enumerations. This change silences the build of the simple-cpp example with BUILD_QT3D_MODULE removed, more changes might be required to fix the report. Task-number: QTBUG-81058 Change-Id: Ie70c14cfef024a25b6b1330fe013ce57c69dc962 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | Fix compilation with MSVCFriedemann Kleint2020-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the deprecation introduced by 6e448dd5918c70ddfd0d52f62522fa49c02e8ba8 since it does not compile with MSVC nor the clang parsers used for qdoc and Qt for Python on Windows. It should be sufficient to deprecate the pointee class. Note the error does not show within Qt3D since the define BUILD_QT3D_MODULE in .qmake.conf causes Q3D_DECL_DEPRECATED to be empty. Task-number: QTBUG-81058 Change-Id: I844cbdabc8cdd2155e7ae9c6058d93a4dd826434 Reviewed-by: Mike Krus <mike.krus@kdab.com>
| * | Expand System InformationMike Krus2019-12-182-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add methods to: - Reveal folder where trace files are saved in the file browser - Dump the output of commands to the console Change-Id: Iaad76b4db93dbf60df170aa53212a8f4df1b2283 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Make GL profiling a runtime optionMike Krus2019-12-183-11/+51
| | | | | | | | | | | | | | | Change-Id: I6cf9007132aa9867fd7046e7e641d849ee141e28 Reviewed-by: Paul Lemire <paul.lemire@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-179-57/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
| * | Use jobsDone to sync render capture back to frontendMike Krus2019-12-134-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-138-27/+53
| | | | | | | | | | | | | | | 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>
| * | Make tracing a runtime optionMike Krus2019-12-1313-293/+400
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-0925-72/+86
| | | | | | | | | | | | | | | | | | | | | | | | 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-072-6/+9
| |\| | | | | | | | | | Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33
| | * 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-063-14/+14
| | | | | | | | | | | | | | | | | | Change-Id: I8f3fe9475749f10f33c8eb750befa8845ccc37d6 (cherry picked from commit 58db7d01e0d424fdf46baa70e2e41b8009429c78) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | Add Q3D_DECL_DEPRECATED macroMike Krus2019-12-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This defines to empty when building Qt3D, and deprecated attribute otherwise. Change-Id: Ic36a020a7c43962ac4313efd72a941e5f74f4e99 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Revert "Fix post FF API changes"Mike Krus2019-12-0310-32/+54
| | | | | | | | | | | | | | | | | | | | | 84766ed9098f10efc53e4e43a75eef38fce7fbf6 Change-Id: I12341ec1b7bc68a7586c6671aa7b8f21caed17e0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Revert "Update jobs to remove post FF changes"Mike Krus2019-12-033-10/+1
| | | | | | | | | | | | | | | | | | | | | d521b994450f0a4febbd789ba66701ba24fdbe22 Change-Id: Ibe6d608e8400e69b50775c0eb156e74e4e90b25c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-165-1/+11
| |\| | | | | | | | | | Change-Id: I3a0df1d21f3556afc9f26eab13fcc525cf584e7e
| | * Fix compile warning (again)Mike Krus2019-11-151-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic20d37a8bf875247c1af31fa4ded757564f953fc Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * Disable threaded rendering macOS 10.14 and laterMike Krus2019-11-144-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Making context current from background thread crashes on Catalina. In this case, we disable threaded rendering. This implies changes in the order in which initialization and rendering happens. We can't just rely on rendering type since Scene3D is not threaded but has it's own initialization logic. Ideally 5.15 should introduce proper API since currently manually setting a QWindow based app to use Synchronous rendering will hang at initialization time. Task-number: QTBUG-80049 Change-Id: Ic346a44d8e0add8232a16129e878423f4cf2f4f1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * Merge remote-tracking branch 'origin/5.13' into 5.14Liang Qi2019-11-141-1/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/nodes/qnode_p.h src/render/renderers/opengl/renderer/renderview.cpp Change-Id: I24483612f9f395e9ffc0bd6163bbfa092b13b7cb
| | | * QNode: stop using hash<node,connection> for bookkeeping5.13Paul 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>
| | * | Doc: Fix documentation warningsTopi Reinio2019-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add (basic) documentation for Qt3DAnimation::QAnimationCallback. - Add missing namespace qualifiers for \class, \fn, \instantiates, \sa, and \property commands. - Remove linking to example file pages, as QDoc no longe treats them as linkable targets. - Fix function/QML method parameter documentation - Fix missing \qmlproperty types - Fix linking to QKeyEvent in QtGui. - Move Qt3DRender::Quick namespace documentation to where QDoc can see it. - Add enum documentation for Qt3DRender::QBlitFramebuffer::InterpolationMethod and Qt3DRender::QMesh::Status. - Other minor fixes This brings the current warning count to zero. Fixes: QTBUG-79822 Change-Id: I1154a7f9c34917a3f240e99da0e7a300be7d65a0 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-092-9/+17
| |\| | | | | | | | | | | | | | Change-Id: I33c8bbabb3f164b3e3d56ca8902222ed6d3a9647
| | * | Fix compile warningsMike Krus2019-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Iac18b5fddec79295dd9e4249fd16eb2f121fe771 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | QNode: stop using hash<node,connection> for bookkeepingv5.14.0-beta3Paul 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>
| * | | Don't try to load binary json GLTF data if !QT_CONFIG(binaryjson)Ulf Hermann2019-11-071-0/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic42a59c1dfea50ba152922bf4edbddc64b2d0f73 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-022-1/+10
| |\| | | | | | | | | | | | | | Change-Id: I8564907ed5efd7617be383017fe12ffa7cd3a0d1
| | * | Fix frame advance serviceMike Krus2019-10-281-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on macOS, blocking the main thread waiting for current frame to finish can lead to events flooding the event queue. In particular, moving the mouse over the window causes the QBasicTimer used by the uniform timer that drives (qtquick) animations to no longer fire. Use tryAcquire to get the resources, waiting a short while to avoid busy main thread. Task-number: QTBUG-79379 Change-Id: I930aa8ad7d5a15600d7ac7af93e6e72321457089 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
| | * | QNode::updateNode: ensure postConstructorInit of node is calledPaul Lemire2019-10-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a QNode subclass is created doing Subclass(parent) with parent != nullptr QNodePrivate::_q_postContrustorInit is called through a queued invocation due to the fact that the QNode ctor is called before the subclass ctor is (and we need the class to be fully constructed to do proper initialization). When adding a QNode subclass created as described above, and immediately referencing it as a property of another QNode, we can end up in cases where the backend gets aware of the node being referenced in the relationship and tries to create its backend. Unfortunately due to the queued invocation of _q_postConstructorInit, the frontend node has yet to be fully initialized, resulting in the creation of the backend node to assert/crash. Therefore, when updateNode is called (whenever a subnode is referenced in a relationship) we now ensure that postConstructorInit gets (or has already been) called. Change-Id: Iea6e0b5a59c676f5db2946bec2f8c345accc32b0 Task-number: QTBUG-79350 Reviewed-by: Mike Krus <mike.krus@kdab.com>