summaryrefslogtreecommitdiffstats
path: root/examples/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Add deployment API to our examplesAlexandru Croitor2024-03-223-27/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Projects were modified using the tool at: https://git.qt.io/alcroito/cmake_refactor A couple of examples had to be adapted manually, due to them including more than one app per example subdirectory. The INSTALL_EXAMPLESDIR and INSTALL_EXAMPLEDIR assignments were removed. The install(TARGETS) calls were modified according to our documentation snippets for qt_generate_deploy_app_script. A qt_generate_deploy_app_script call was added for each executable target. Note that the deployment step will be skipped in the CI for now, because we enable QT_DEPLOY_MINIMAL_EXAMPLES and thus QT_INTERNAL_SKIP_DEPLOYMENT, and also because standalone examples are not enabled yet, and deployment is disabled for in-tree (so no-standalone-example) prefix builds. The install(TARGETS) calls for each example will still run, installing the examples into an installed_examples directory, that will not be archived by the CI. Pick-to: 6.7 Task-number: QTBUG-102056 Task-number: QTBUG-102057 Change-Id: Ida389bbad41710b2ae5da4d95e2d85be9e0cd9ce Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Correct license for examples filesLucie Gérard2024-03-074-4/+4
| | | | | | | | | | | | | | Example takes precedent over build system file type. According to QUIP-18 [1], all examples file should be LicenseRef-Qt-Commercial OR BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: Id348a89884bb309b96abb31077f14a51086b5d0c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Doc: Create separate Graphics and Multimedia example categoriesJaishree Vyas2024-01-163-3/+3
| | | | | | | Fixes: QTBUG-117884 Pick-to: 6.6 6.7 Change-Id: I33c7b1cbfaeae866dffb0e89a5d09d775736d886 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix broken capture in hellovulkancubes exampleLaszlo Agocs2023-11-091-1/+1
| | | | | | | | | | | | | Amends 339323b999feed077adecc0afaa215f8caffc043 Capturing a function argument (or any local variable) by address is a bad idea. Fixes: QTBUG-118912 Fixes: QTBUG-118986 Change-Id: I521d319a37f7acd6c66732f5f7d3cf1be4d49029 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* examples/: compile with QT_NO_CONTEXTLESS_CONNECTAhmad Samir2023-09-081-1/+1
| | | | | | | | | | | | | | | | | Examples are usually a good way to get to know a new codebase, do not teach developers who are new to Qt about the 3-arg connect() to begin with. Drive-by changes: - `this` can't be implicitly captured with [=] in a lambda, instead capture by reference - Update docs related to the sqlbrowser example; the overloaded signal it mentions has been removed in Qt6 - In the sqlbrowser example, rename addConnection() (no-arg) overload to openNewConnectionDialog, suggested in code review Change-Id: I30c9f35bda4ac2f460d767ab7f84422ae3ed09f7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Doc: Add \examplecategory to qtguiSafiyyah Moosa2023-08-283-0/+3
| | | | | | | Task-number: QTBUG-116068 Pick-to: 6.5 6.6 Change-Id: Ia0bdc2122434adac51b37ba2207a2b0b993cf19b Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* examples/: implicit capture of `this` via [=] is deprecated in C++20Ahmad Samir2023-08-181-1/+1
| | | | | Change-Id: I43b04517e9e3a30468c8ce702c9a49968c0ddc4d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Polish forward decl in vulkan and opengl examplesLaszlo Agocs2023-06-012-12/+8
| | | | | | | Pick-to: 6.5 Change-Id: I9f05aedc7649ab7e248b7332c04a6664e85182d8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Docs: don't link to removed exampleVolker Hilsheimer2023-04-111-3/+2
| | | | | | | Pick-to: 6.5 Change-Id: I5fcec02cd18971150eec4f119d902c695bf2ebb9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io>
* Remove hellovulkanwindow exampleLaszlo Agocs2023-03-2211-273/+50
| | | | | | | | | | | | | The idea being that hellovulkantriangle demonstrates the same things. As a getting started tutorial hellovulkanwindow is the ideal example, but then again QVulkanWindow is not something we want to promote much in Qt 6. Some of the docs are moved to hellovulkantriangle. Pick-to: 6.5 Change-Id: Icbfff70b4a4c7e4c0863a937f3c16038c0b03fbe Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Move hellovulkantexture example to manual testLaszlo Agocs2023-03-2215-1005/+1
| | | | | | | | | | Because it is the least documented one, and compared to the other Vulkan examples it does not add anything new, it just dives deeper into Vulkan. Pick-to: 6.5 Change-Id: Iecf3e04625fba256ea8134da57f54498ee2010db Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Examples: Add missing include guardsFriedemann Kleint2023-02-014-0/+20
| | | | | | | | Pick-to: 6.5 6.4 6.2 Task-number: QTBUG-109394 Change-Id: I09a1b522d0faeb2346e1e075141f1e810c8155f7 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Examples: Use PRIVATE CMake linkageKai Köhne2022-11-305-5/+5
| | | | | | | We (almost) only build apps, for which PRIVATE linkage makes more sense. Change-Id: I09a509c3fb33a00cdfdede687b3f95d638f42091 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Examples: Use qt_standard_project_setup()Kai Köhne2022-11-175-10/+10
| | | | | Change-Id: I0ceab08108b7e58e4e2ed25db9e3c289f5c0ddac Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Examples: Use Qt6:: to qualify Qt CMake packagesKai Köhne2022-11-176-15/+15
| | | | | | | This is what we promote also in the documentation. Change-Id: If91aebafe861b0c934acbb2c69afd182abc3345d Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-236-6/+6
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-036-0/+18
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-1631-1404/+62
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Examples: Remove unneeded CMake optionsKai Köhne2022-01-245-20/+0
| | | | | | | | | | | | | | | CMAKE_INCLUDE_CURRENT_DIR is not necessary anymore for moc since CMake 3.8: https://cmake.org/cmake/help/latest/release/3.8.html#other-changes CMAKE_AUTORCC should not be used anymore. Instead, we now use qt_add_resources() or similar Enable CMAKE_AUTOUIC only if .ui files are present. Pick-to: 6.3 Task-number: QTBUG-87643 Change-Id: I835e2994cd5dba9918136999499b9077961b616c Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Examples: Fix whitespace issues in CMakeLists.txtKai Köhne2021-12-135-9/+21
| | | | | | Pick-to: 6.3 Change-Id: I8e6dd1f250f8be6016ee4164cb2ab7034cbb1203 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Examples: Remove remaining conversion markers in CMakeLists.txtKai Köhne2021-12-136-12/+0
| | | | | | Pick-to: 6.3 Change-Id: Ia5d474a3efd6aadbd0ef1537318f2f24e6c24fee Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Prefer unversioned commandsKai Köhne2021-12-133-3/+3
| | | | | | Pick-to: 6.3 Change-Id: Ib32700ab82cf6b271c49e25d12fbad8c9c6bc1d1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Examples: Use find_package(Qt6 REQUIRED COMPONENTS ...) idiomKai Köhne2021-12-105-13/+5
| | | | | | | | | Also consolidate several find_package(Qt6 ...) calls in one call. Task-number: QTBUG-98867 Change-Id: Idfd5e71f46d4489fac7411cbfadb84437a0658f3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Raise cmake_minimum_required to VERSION 3.16 in examplesJoerg Bornemann2021-08-175-5/+5
| | | | | | | Pick-to: 6.2 Task-number: QTBUG-95636 Change-Id: I1270b4846d8a23bc3563b6942c0910e095d2be4a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* vulkan: Update legacy tests and examples to the modern validation layerLaszlo Agocs2021-05-315-66/+5
| | | | | | Fixes: QTBUG-88388 Change-Id: Ib072f203ada5d692dea8d35da2b24db0deac0297 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Build examples in isolated sub-builds using ExternalProjectCraig Scott2021-05-261-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Examples are intended to show how to build against an installed Qt. Building them as part of the main build means the way the Qt targets are defined and created are not representative of an end user's build. By building them as separate projects using ExternalProject, we can more closely replicate the intended audience's environment. This should allow us to catch more problems earlier. Having examples built as part of the main build also creates problems with some static builds where a tool built by the main build is needed during configure time. This happens with other repos like qtdeclarative but not (currently) with qtbase. Converting the examples in qtbase to be built using ExternalProject is intended as a demonstrator for how other repos can do similar. Until other repos are converted, they will continue to work as they did before, with examples as part of the main build for non-static builds only. The new build-externally behavior is only supported for non-prefix builds with this change. Prefix builds will continue to use the old non-external method. Support for building examples externally in prefix builds will be a separate change. Task-number: QTBUG-90820 Fixes: QTBUG-91068 Change-Id: I2304329940568dbdb7da18d54d5595ea7d8668bc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Regenerate examples to set the WIN32_EXECUTABLE propertyAlexandru Croitor2020-10-275-0/+20
| | | | | | | | | As well as the MACOSX_BUNDLE properties as necessary. Task-number: QTBUG-87664 Task-number: QTBUG-86827 Change-Id: I7677449a26d51fa853bd67bab6b3b61afbd2b12f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate examples to use qt_add_executableAlexandru Croitor2020-10-195-5/+5
| | | | | | Task-number: QTBUG-87661 Change-Id: I0dacfdc97a3fb7d88da85b67800f2c1b084d869b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix vulkan example build with MSVCLaszlo Agocs2020-09-141-1/+1
| | | | | | | | Undeclared identifier ssize_t etc. Just use int. Not like we can have more than a handful of physical devices anyway. Change-Id: Ie1fb7ab9794a7d39e84db864c2be6dbdd5d97f50 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix compiler warning about qsizetype/int mismatchLars Knoll2020-08-041-1/+1
| | | | | Change-Id: I58624d8c5de0734bd0851e6744ed34c1408dfda6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* CMake: Regenerate examplesAlexandru Croitor2020-07-095-5/+25
| | | | | | Change-Id: I1c51b10af4e2b26f54740f257164c56a0e2a03ce Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Use QList instead of QVector in examplesJarek Kobus2020-06-234-4/+4
| | | | | | Task-number: QTBUG-84469 Change-Id: Id14119168bb1bf11f99bda7ef6ee9cf51bcfab2e Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Replace calls to deprecated QEvent accessor functionsShawn Rutledge2020-06-081-4/+4
| | | | | | | Many of these were generated by clazy using the new qevent-accessors check. Change-Id: Ie17af17f50fdc9f47d7859d267c14568cc350fd0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QtConcurrent::run: accept more then five function's argumentsVitaly Fanaskov2020-03-111-2/+2
| | | | | | | | | | | | | | [ChangeLog][Potentially Source-Incompatible Changes] QtConcurrent::run has the following signatures: run(Function &&f, Args &&...args) and run(QThreadPool *pool, Function &&f, Args &&...args). If f is a member pointer, the first argument of args should be an object for which that member is defined (or a reference, or a pointer to it). See the documentation for more details. Fixes: QTBUG-82383 Change-Id: I18f7fcfb2adbdd9f75b29c346bd3516304e32d31 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devLiang Qi2020-02-135-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/widgets/graphicsview/boxes/scene.h src/corelib/Qt5CoreMacros.cmake src/corelib/Qt6CoreMacros.cmake src/network/ssl/qsslsocket.cpp src/network/ssl/qsslsocket.h src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp src/testlib/CMakeLists.txt src/testlib/.prev_CMakeLists.txt tests/auto/corelib/tools/qscopeguard/tst_qscopeguard.cpp Disabled building manual tests with CMake for now, because qmake doesn't do it, and it confuses people. Done-With: Alexandru Croitor <alexandru.croitor@qt.io> Done-With: Volker Hilsheimer <volker.hilsheimer@qt.io> Change-Id: I865ae347bd01f4e59f16d007b66d175a52f1f152
| * Doc: Specify install path for Vulkan examplesTopi Reinio2020-01-305-0/+5
| | | | | | | | | | | | | | | | | | | | Vulkan examples, although part of the Qt GUI documentation project, live under their own directory under /examples. Mark the correct install path for these using the \meta command. Fixes: QTBUG-81360 Change-Id: I0b98a19bf56d5b1953dbd90c0d5103be9041689a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Regenerate examplesAlexandru Croitor2020-02-045-9/+9
| | | | | | | | | | | | Change-Id: I04b2adbe370ffea81d7787ad90e4ae69d2c165cb Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | cmake: add examples/vulkanFrederik Gladhorn2019-10-076-0/+252
|/ | | | | | | Fixes: QTBUG-78216 Change-Id: Id7d936ab0b3febc6b7ad3170ec2ea67836484217 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Fix use of qrand/qsrand in an exampleEdward Welbourne2019-04-011-3/+4
| | | | | | | | | | | Convert an example to use QRandomGenerator::global(). This saves the need for seeding. At the same time, use continuum random values rather than discrete ones, to better fit what the example using it is doing. Change-Id: I0adebaadb2e35832c629e314fda37e60b51f760d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtBase: replace deprecated QString functionsChristian Ehrlicher2019-03-041-7/+7
| | | | | | | | | | | | Replace deprecated QString functions in examples and tests: - QString::sprintf() - QString::null - QString::fromAscii Change-Id: I4404d17c1a65496c9079e8a7300e72a5b3740fe5 Reviewed-by: Luca Beldi <v.ronin@yahoo.it> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* Fix device local alloc in hellovulkantextureLaszlo Agocs2018-09-121-0/+10
| | | | | | | | | | Running with QT_VK_FORCE_STAGE_TEX does not work at all with recent NVIDIA drivers due to QVulkanWindow's and the example's naive way of picking the memory index. Enhance this and add a warning note to the QVulkanWindow docs as well. Change-Id: I7f200e11d982b56e3da3b71ee3915bd7bfca5cc1 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix src access with staging buffer in hellovulkantextureLaszlo Agocs2018-09-121-3/+3
| | | | | Change-Id: Iafcd94ec812a61dcfae6da43b1ca9f5771e05e56 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Revise an incorrect QVulkanWindow doc noteLaszlo Agocs2018-09-063-4/+4
| | | | | | | | | | | | | Applying the transformation in question has no effect on the winding order. Rewrite that section. While all the examples are correct, clarify the rules for the geometry they use since the winding order varies. Fix up the triangle example code to use front=CCW for clarity (even though it does not matter much since culling is off there). Change-Id: Icb968c76cc9fa918a5608d3c66b4fccd5668175e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Doc: Add missing full stops in briefsPaul Wicking2018-06-215-5/+5
| | | | | | Task-number: QTBUG-68933 Change-Id: I3f2a9f8c562f9a44bb32bddd31d75abbfe6de04d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Vulkan Examples: Fix Clang warnings about initialization of VkClearColorValueFriedemann Kleint2018-04-304-4/+4
| | | | | | | | | | | | | | hellovulkanwindow.cpp(97,38): warning: suggest braces around initialization of subobject [-Wmissing-braces] VkClearColorValue clearColor = { 0.0f, m_green, 0.0f, 1.0f }; hellovulkantexture.cpp(771,38): warning: suggest braces around initialization of subobject [-Wmissing-braces] VkClearColorValue clearColor = { 0, 0, 0, 1 }; ..\shared\trianglerenderer.cpp(455,38): warning: suggest braces around initialization of subobject [-Wmissing-braces] VkClearColorValue clearColor = { 0, 0, 0, 1 }; renderer.cpp(896,38): warning: suggest braces around initialization of subobject [-Wmissing-braces] VkClearColorValue clearColor = { 0.67f, 0.84f, 0.9f, 1.0f }; Change-Id: I3c2403699059dac2f88541f2a2102b774db0c887 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* hellovulkantexture: Fix issues with new validation layerLaszlo Agocs2017-10-161-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upgrading to a recent Vulkan SDK (e.g. 1.0.61) leads to getting a few previously unseen warnings from the validation layers. Fix these: vkDebug: ParameterValidation: 8: vkCreateSampler(): The samplerAnisotropy feature was not enabled at device-creation time, so the maxAnisotropy member of the VkSamplerCreateInfo structure must be 1.0 but is 0.000000. vkDebug: DS: 461375808: vkCmdPipelineBarrier(): pImageMemBarriers[0].srcAccessMask (0x4000) is not supported by srcStageMask (0x1). The spec valid usage text states 'Any given element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its srcAccessMask member if that bit is not supported by any of the pipeline stages in srcStageMask, as specified in the table of supported access types.' vkDebug: DS: 6: vkCmdDraw(): Cannot use image 0x7 with specific layout VK_IMAGE_LAYOUT_GENERAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL. vkDebug: DS: 61: Descriptor set 0xc encountered the following validation error at vkCmdDraw() time: Image layout specified at vkUpdateDescriptorSets() time doesn't match actual image layout at time descriptor is used. See previous error callback for specific details. Change-Id: I1a3200221ac725c2fa661eff3ac075262b9355c2 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QVulkanWindow: return QMatrix4x4 by valueMarc Mutz2017-05-223-3/+3
| | | | | | | The function never returns nullptr, so return the matrix by value. Change-Id: I7c1eeb43b9693866049763565b575348ddd35548 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QVulkanWindow: use QVector, not QSet, for small int setMarc Mutz2017-05-223-4/+3
| | | | | | | | | | Apart from being more efficient to construct and test, for the expected very small number of entries, the example code itself shows that a sorted vector is much more useful than an unordered set. Change-Id: Ic5e38df0176ac4be08eac6a89c2e1cabab2a9020 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* hellovulkanwidget example: Add a widget showing debug outputFriedemann Kleint2017-03-303-9/+34
| | | | | | | Add a tab widget for vulkan info and debug log. Change-Id: I0428bb5b6f847d0e94d62e846d34e4cb69eda5b6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add the Vulkan cube exampleLaszlo Agocs2017-03-2931-1/+5703
| | | | | | | Features a little bit more than a cube, though. Change-Id: I636d4875ba9ccf722ed3caab97f14570be785748 Reviewed-by: Andy Nichols <andy.nichols@qt.io>