summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Enabler: Store more properties of application fontsEskil Abrahamsen Blomfeldt2020-03-0619-238/+439
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The family name of a font is ambiguous and without additional information there is no way to separate one font from another inside that family. In order to make it possible to expose more info about application fonts from FontLoader in Qt Quick, we need to store them in the font database. Task-number: QTBUG-68829 Change-Id: I931e1c2c004437ac0a21d4d88e55d176de676f34 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | CMake: Fix Ninja Multi-Config framework buildsAlexandru Croitor2020-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Depends on a new bleeding edge feature in as-of-yet unreleased CMake 3.18, that allows building macOS frameworks using the Ninja Multi-Config generator targeting more than one configuration. It uses the new CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_DEBUG property which tells CMake to create properly named debug artifacts in the Multi-Config ninja file. Without it, both debug and release artifacts would have the same location (no _debug) postfix, so it would be unclear which file ends up being compiled as last (the debug or release variant). Change-Id: I3e10832551731a18317da8f9667d96cec3dc3028 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Initial cleanup of qevent.h for Qt6Allan Sandfeld Jensen2020-03-0515-140/+33
| | | | | | | | | | | | | | | | | | | | | | | | Takes care of the first round of todos and deprecations for Qt6 in qevent. Not touching anything that might interfere with changing the class hierarchy as the file also suggest. Change-Id: If72d63d8932f1af588785bf77b34532358639a63 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | CMake: Depend on automoc timestamp for metatypes extractionLeander Beernaert2020-03-051-13/+40
| | | | | | | | | | | | | | | | | | When using CMake 3.17 with any of the Ninja generators we can leverage a dependency on the timestamp file produced by CMake's automoc to avoid having a custom target run on every build. Change-Id: Ia70d2730cc8296d0a43642655fe69b555cb393c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Convert Core_qobject to a static moduleLeander Beernaert2020-03-051-13/+9
| | | | | | | | | | | | | | | | This removes the last add_custom_target when used in conjunction with the Ninja and CMake >= 3.17. Change-Id: Ibb9bdff4b5bc00542d2a5ba631cea7e0510ad5e9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Add QT_MODULE_SKIP_MODULE_INCLUDES propertyLeander Beernaert2020-03-052-1/+13
| | | | | | | | | | | | | | | | | | | | When a Qt module has this property set, when we generate the QtModuleDepends header file and find this module it will not be added. This is required to be able to create a Core_qobject module, as it does not have any headers. Change-Id: Iaea1080919d05ace12e48693e02d8c0f4c669339 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Remove QImageIOHandler::name()Shawn Rutledge2020-03-052-14/+0
| | | | | | | | | | | | | | | | It has been marked obsolete for a very long time, and deprecated in code since f9e6f8efda350689211286db9154677924df8aab. Change-Id: Ib351025369584bf3b8a3a17f980a567d2b9556ca Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Get rid of some QT_STRICT_ITERATORS leftoverLars Knoll2020-03-056-88/+5
| | | | | | | | | | | | | | | | Amends 06456873fceddcd340431fc5999c50ff6d3c2371. Fixes: QTBUG-82611 Change-Id: I8b1e01549f3e910b85a571833237e38a7c2b49a9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | CMake: Handle conditions in third party find modules correctlyAlexandru Croitor2020-03-059-37/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the FindWrap modules checked for hardcoded features when deciding whether to use a bundled library or not. This proved not to work correctly because features were not available when the find modules were processed. Introduce a new CMake API call that needs to be manually called after an add_subdirectory call which declares a bundled library. The call will check for the existence of the bundled target, and will then set a cache variable QT_USE_BUNDLED_Bundled<TargetName>. The same variable is written into a FindWrapFooConfigExtra.cmake file which will be loaded by the appropriate FindWrap module. The module can that use that variable to decided whether to link against the bundled library or the system library. Change-Id: I75e9a4f4e14d88d4490916a79ad12f1ce57891e0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | CMake: fix typoMårten Nordheim2020-03-051-1/+1
| | | | | | | | | | | | | | | | gerate -> generate Change-Id: I948a3bdb4f56584a9ab02f27760fec5989d528ce Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | QHash/QMap: don't return const from value(), key()Marc Mutz2020-03-054-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... it breaks move semantics. We can change these, since they're templates and a short survey shows that no-one in Qt was crazy enough to inherit an exported class from QHash or QMap. Otherwise this would be BiC on MSVC, which encodes the return type. There's also no safety benefit here, as none of the overloads returns by reference, so users cannot expect map.value(key).mutate() to have an effect on the element in the container. In this, key() and value() differ from op[], which also returns const, but whose overload returns a reference. op[] is therefore not proposed here. [ChangeLog][QtCore][QHash/QMultiHash/QMap/QMultiMap] The value() and key() member functions now return T (was: const T), enabling move semantics on their return values. Change-Id: I0e5f53f9834caad458e3bde27f1daacbb4bac71b Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Add support for attaching continuations to QFutureSona Kurazyan2020-03-0510-7/+1151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added QFuture::then() methods to allow chaining multiple asynchronous computations. Continuations can use the following execution policies: * QtFuture::Launch::Sync - the continuation will be launched in the same thread in which the parent has been executing. * QtFuture::Launch::Async - the continuation will be launched in a new thread. * QtFuture::Launch::Inherit - the continuation will inherit the launch policy of the parent, or its thread pool (if it was using a custom one). * Additionally then() also accepts a custom QThreadPool* instance. Note, that if the parent future gets canceled, its continuation(s) will be also canceled. If the parent throws an exception, it will be propagated to the continuation's future, unless it is caught inside the continuation (if it has a QFuture arg). Some example usages: QFuture<int> future = ...; future.then([](int res1){ ... }).then([](int res2){ ... })... QFuture<int> future = ...; future.then([](QFuture<int> fut1){ /* do something with fut1 */ })... In the examples above all continuations will run in the same thread as future. QFuture<int> future = ...; future.then(QtFuture::Launch::Async, [](int res1){ ... }) .then([](int res2){ ... }).. In this example the continuations will run in a new thread (but on the same one). QThreadPool pool; QFuture<int> future = ...; future.then(&pool, [](int res1){ ... }) .then([](int res2){ ... }).. In this example the continuations will run in the given thread pool. [ChangeLog][QtCore] Added support for attaching continuations to QFuture. Task-number: QTBUG-81587 Change-Id: I5b2e176694f7ae8ce00404aca725e9a170818955 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | configurejson2cmake: Fix non-inline compile testsJoerg Bornemann2020-03-051-13/+10
| | | | | | | | | | | | | | | | | | | | If there's no test dir set, use "config.tests" as default value, and perform the check for the existence of CMakeLists.txt in configurejson2cmake, not the configure.cmake file. Change-Id: I8d3be8f2b68767c7592665c374022353c2dc6c57 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | configurejson2cmake: Fix compile tests without a "test" entryJoerg Bornemann2020-03-051-1/+4
| | | | | | | | | | | | | | | | | | Set the default value of the "test" entry to the test's name like the qmake-based configure does. Change-Id: Ic1027c54c6312c47dca241dd7e3dc65b3e35d36f Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Port the 'force_debug_info' featureJoerg Bornemann2020-03-052-1/+8
| | | | | | | | | | | | | | | | | | | | This feature is read-only and is ON if CMAKE_BUILD_TYPE is RelWithDebInfo or if that value is in CMAKE_CONFIGURATION_TYPES. It mainly exists for the qmake support. Change-Id: I25cb57e832dcfcab100834a104b1a3d34f01086b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Port the 'debug_and_release' featureJoerg Bornemann2020-03-053-1/+13
| | | | | | | | | | | | | | | | This feature is read-only. It's controlled by the multi-config feature of CMake. It mainly exists for the qmake support. Change-Id: I322459598fe92568eda4d42319ded444537e95d4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Port the 'shared' featureJoerg Bornemann2020-03-052-1/+8
| | | | | | | | | | | | | | | | This feature is read-only and supposed to be set by BUILD_SHARED_LIBS. It mainly exists for the qmake support. Change-Id: I722b0de53211d0aab1924e45a77120c890f31f50 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Port the 'debug' featureJoerg Bornemann2020-03-052-1/+6
| | | | | | | | | | | | | | | | This feature is read-only and supposed to be set by variables like CMAKE_BUILD_TYPE. It mainly exists for the qmake support. Change-Id: Ic7e32cbda0f3c2d92dd446b07a3bf1a8d85ec3b9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.15' into dev"Lars Knoll2020-03-04111-569/+1067
|\ \
| * \ Merge remote-tracking branch 'origin/5.15' into devLars Knoll2020-03-04111-569/+1067
| |\ \ | | |/ | | | | | | Change-Id: I99ee6f8b4bdc372437ee60d1feab931487fe55c4
| | * macOS: Don't create QMacCGContext when printingTor Arne Vestbø2020-03-041-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | We adopt the context of the print session, so the code is not needed, and would just produce a warning since QMacCGContext didn't know what to do about the printer paint device. Change-Id: I9ac079f5cb5d98022045632592d0e375710eecc3 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * macOS: Reduce save dialog extension filters to their last componentTor Arne Vestbø2020-03-041-19/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NSSavePanel does not deal well with multi-part extensions, to the point where it will fail to open if that's the only acceptable extension. We follow Chromium's lead here and reduce the extension to its last component, which enables selecting and saving files such as 'foo.tar.gz'. To improve the user experience we always show file extensions when we detect a multi-part extension. This makes it clearer what the final extension will be, and avoids confusing macOS about the intention of the user when choosing a file that without the final extension also matches another known extension. Fixes: QTBUG-38303 Fixes: QTBUG-44227 Change-Id: Id0cee84f758c2cd59fcf1b339caa30f7da07dd1e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * QMimeXMLProvider: fix another issue with -no-mimetype-databaseThiago Macieira2020-03-032-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler must emit the destructor for the members of a class in an inline constructor, in case the constructor throws. This won't work in Qt 5.15 due to QList requiring knowing whether QMimeMagicRuleMatcher is trivial or not. Another solution would be to use QVector. Fixes: QTBUG-82547 Change-Id: Ia8b65350cd5d49debca9fffd15f79db872ed7c0c Reviewed-by: David Faure <david.faure@kdab.com>
| | * Add operator-> to the key-value iterator for QHash and QMapIvan Čukić2020-03-034-3/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the arrow operator to the stl-like key-value iterator (QKeyValueIterator) for QMap and QHash. This allows using normal member access syntax it->first and it->second instead of having to use (*it).first and (*it).second. [ChangeLog][QtCore][Containers] Added operator-> to the key-value iterator for QHash/QMap. Change-Id: I9cfa6480784ebce147fcfbf37fec5ad0080e2899 Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
| | * Generate separate debug info for Qt tools tooJoerg Bornemann2020-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If Qt was configured with -separate-debug-info, Qt's tools should be separated from their debug information too. Fixes: QTBUG-56482 Change-Id: Ief0130db1787b767496d0052716183fe773460bf Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| | * QMenu: hide when a QWidgetAction fires the trigged signalVolker Hilsheimer2020-03-032-4/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QMenu hides regularly when the user interacts with it, and manages the firing of signals based on that. It ignores if a QAction that is added to it fires the triggered() signal programmatically. With QWidgetActions added to the menu, the menu usually doesn't get interacted with directly, as the widget gets the input events. Since the action can be added to multiple menus, neither widget nor action can interact with the menus programmatically. Instead, the menu needs to hide when the widget action triggers. Test included that covers the case where a QWidgetAction is added to multiple menus that are visible. Documentation updated, and removed a redudant paragraph as a drive-by change. [ChangeLog][QtWidgets][QMenu] a popup menu hides when a QWidgetAction added to it fires the triggered signal. Change-Id: I69f378426a45c2e46cebdaa5e6f1b21c8fb03633 Fixes: QTBUG-10427 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * QEventDispatcherWin32: unregister event notifiers on closeAlex Trotsenko2020-03-033-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QEventDispatcherWin32::closingDown() is called, threadData->eventDispatcher is already nullptr and the application will no longer process the events. Thus, just as it works for socket notifiers and timers, it makes sense to disable all active event notifiers at this point. Otherwise, it seems possible that an object in signalled state can provoke a data race in the notifier's callback on 'edp' pointer, if QWin32EventDispatcher destructor is running simultaneously. Task-number: QTBUG-64152 Task-number: QTBUG-70214 Change-Id: I6e77f3eeca1b0ea639021e73b86798cba0200ebf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Examples: add scrollbar to allow viewing all options on AndroidAssam Boudjelthia2020-03-032-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix is most relevant for Android for affine and gradients examples. Currently, if the screen size is small the settings will show cramped and not usable. Thus, adding a scrollbar to fix that. Task-number: QTBUG-80717 Change-Id: Ic25460e5ce37a5c53bbcae48e11b6b787c45e999 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * Examples: update examples list for AndroidAssam Boudjelthia2020-03-031-78/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly set the list of examples that works on Android, as many have issues with layout or other issues. Task-number: QTBUG-80716 Change-Id: If71efc45a48c6236f8775e21e4cab6dc0129f024 Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * Fix missing return-type in doc of qfloat16::copySign()Edward Welbourne2020-03-031-1/+1
| | | | | | | | | | | | | | | Change-Id: I617081fe3335a85191be7882578644621d5ffede Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Examples: enable HighDPI scaling for examples on AndroidAssam Boudjelthia2020-03-0316-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | These examples show very tiny UI elements on Android devices, thus enabling HighDPI. Task-number: QTBUG-80717 Change-Id: I813801d5249dc1fcfc6f61a8d146f60dd19901f6 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * Suppress warnings where QString and its tests use SplitBehaviorEdward Welbourne2020-03-032-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This is a follow-up to commit 895939c7f91d0c8424a0638c42d05cb42293a142 to fix deprecation warnings it added. Change-Id: I3d86655ec2c84c1bdcac9c70436075fc78f2f781 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * QNetworkReply: Deprecate 'error' signal, use 'errorOccurred' insteadMårten Nordheim2020-03-0311-35/+48
| | | | | | | | | | | | | | | | | | | | | [ChangeLog][Deprecation Notice] QNetworkReply::error() (the signal) is deprecated; superseded by errorOccurred() Change-Id: I4f1ef410fd22d34ddf87e89cc5709cc60703af95 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| | * QVulkanWindow: Remove queueCreateInfoModifier getterLaszlo Agocs2020-03-032-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | This is inconsistent with the other similar functions in QVulkanWindow, we do not provide getters for those either. Change-Id: If764b49f4b26ff14a2fa908b8d5b37429047250c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * rhi: Add a way to communicate back the native image layout for a QRhiTextureLaszlo Agocs2020-03-034-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Relevant when doing custom rendering combined with QRhi, and only for APIs like Vulkan, where image layouts are a thing. As shown by demo apps, it is not currently possible to implement a correct application that renders or raytraces into a QRhiTexture's backing VkImage, and then uses that QRhiTexture in a QRhi-based render pass. This is because QRhi has no knowledge of the image layout if it changes due to commands recorded by direct Vulkan calls, and not via QRhi itself. So, except for certain simple cases, one will end up with incorrect image layout transitions in the barriers. (at minimum this will be caught by the validation layer) To remedy this, add a simple function taking the layout as int (we already do the opposite in nativeTexture()). Task-number: QTBUG-82435 Change-Id: Ic9e9c1b820b018f3b236742f99fe99fa6de63d36 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * Add since 5.15 to new QVulkanInstance functionLaszlo Agocs2020-03-031-0/+2
| | | | | | | | | | | | | | | Change-Id: Ib1fb6186a8c76d6848d5eda1756e7749383dae40 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * rhi: Use versioning in QShaderDescription serialization as wellLaszlo Agocs2020-03-036-25/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first time that we add something to QShaderDescription after migrating to the non-JSON based serialization system. This now involves checking the "qsb version" when deserializing. Task-number: QTBUG-82624 Change-Id: I2bd875ef21e461559b878dccc5537cdfa43feaa2 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * rhi: Include an arrayDims vector in InOutVariable tooLaszlo Agocs2020-03-032-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use the this struct to describe combined image samplers and storage images as well. Especially with the former, it is not unlikely that we will need arrays, so e.g. layout(binding = 1) uniform samplerCube shadowCubes[8]. In this case the '8' is something that must be reported in to the reflection information. The new arrayDims member is expected to work exactly like the similarly named member in BlockVariable. Task-number: QTBUG-82624 Change-Id: I1fb8b0318906ff4c116c1a7ec23a399c6545c730 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * rhi: vulkan: Sanitize device extension handlingLaszlo Agocs2020-03-033-18/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of qputenv("QT_VULKAN_DEVICE_EXTENSIONS", "VK_KHR_get_memory_requirements2;VK_NV_ray_tracing"); one can now do params.deviceExtensions = { "VK_KHR_get_memory_requirements2", "VK_NV_ray_tracing" }; on the QRhiVulkanInitParams passed to QRhi::create(). The environment variable stays important for Qt Quick applications, which provide no configurability for the QRhi construction (yet). On the other hand, applications using QRhi directly can now also use the new approach to specify the list of device extensions to enable. In addition, take QVulkanInfoVector<QVulkanExtension> into use. There is no reason not to rely on the infrastructure provided by QVulkanInstance. This also implies showing an informative warning for unsupported extensions, instead of merely failing the device creation. (applications will likely not be able to recover of course, but at least the reason for failing is made obvious this way) Task-number: QTBUG-82435 Change-Id: Ib47fd1a10c02be5ceef2c973e61e896c34f92fa3 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| | * rhi: d3d: Use native resource binding mapping table when presentLaszlo Agocs2020-03-032-64/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer versions of QShaderBaker will now use distinct, zero-based b, t+s, and u register spaces in the generated HLSL source. If this is the case, the native resource binding map (which so far we only used with Metal) contains the SPIR-V binding -> HLSL register binding mappings. This way we won't end up with invalid resource binding attempts (consider that e.g. D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT is only 16), just because, for example, a combined image sampler had a binding of 18 which then got blindly mapped to s18 and t18 in HLSL. Task-number: QTBUG-82472 Change-Id: I8bdcb5378634cf159f6367424582f9e9e5821c8e Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * rhi: Execute pending host writes on nativeBuffer() queryLaszlo Agocs2020-03-037-30/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise it is impossible to write an application that pulls out the VkBuffer for a Dynamic QRhiBuffer, and then uses it with custom Vulkan operations that read from the buffer. More precisely, the problem arises only if the buffer in question is not used in combination with any QRhi operations, because in that case there is nothing that would trigger doing the host writes queued up by a resource batch's updateDynamicBuffer(). Task-number: QTBUG-82435 Change-Id: Ieb54422f1493921bc6d4d029be56130cd3a1362a Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * Do not constantly create new surfaces with MoltenVK on macOSLaszlo Agocs2020-03-033-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Querying the VkSurfaceKHR for a window is expected to create the surface once and then return the same value afterwards. Task-number: QTBUG-82600 Change-Id: Ib3e99dfca4d940de1a14348eb1909d372a7dde04 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * macOS: MoltenVK: Pass in the layer instead of the viewLaszlo Agocs2020-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Surface creation may be triggered on a thread other than the main thread. To enable this, MoltenVK also accepts the CAMetalLayer instead of the NSView. See https://github.com/KhronosGroup/MoltenVK/pull/258 Task-number: QTBUG-82600 Change-Id: I7b925210d05235baf04441682760f09fe58d8144 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * QMap: undeprecate QMap::count(Key)Mårten Nordheim2020-03-032-32/+19
| | | | | | | | | | | | | | | | | | | | | For compatibility with std::map Change-Id: Icba536244aadcad97c59dfd4bb22a7fdea881a7b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * QMap/QHash: Use versioned deprecation macroMårten Nordheim2020-03-032-10/+10
| | | | | | | | | | | | | | | | | | | | | Because then it can be configured Change-Id: Ib4c20dd64bedfe2ebadf13283698c50d4c0bc527 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Undeprecate QHash::count(Key)Mårten Nordheim2020-03-032-29/+14
| | | | | | | | | | | | | | | | | | | | | For compatibility with std::unordered_map. Spotted in the API review. Change-Id: Ic34600d55baebcbbf115c1090cd555984037c44c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Avoid UB in QList::removeAt()Lars Knoll2020-03-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always keep the out of bounds check for backwards compatibility, but warn about it, so that we can remove it in Qt 6. Amends commit ebf695bc779a63a5730df05ab246305c0ab342e4 Change-Id: I3f1e7e8f9f20feb0b0f06ff9083c26682f1c7d3b Reviewed-by: Richard Öhlinger <richard.oehlinger@adbsafegate.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Qt Forward Merge Bot2020-03-0317-69/+141
| | |\
| | | * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-2917-69/+141
| | | |\ | | | | | | | | | | | | | | | Change-Id: I851c0328c3c38ea67b5ad115b205ac6a1262706e
| | | | * Try again to make QDeadlineTimer test robust against context switchesVolker Hilsheimer2020-02-281-16/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of comparing to absolute values, compare the result from QDeadlineTimer with the reference clock types from std::chrono. Pass the test as long as we are within 10% of that reference. In addition, handle the case where QTest::qSleep sleeps for more than 10% longer or shorter than what is requested, and if so, abort the test. Change-Id: If8b77aea55a8c5c53e96427b2fff2f78281d0f82 Reviewed-by: Lars Knoll <lars.knoll@qt.io>