Andreas Süßenbach
2613539ff4
Change move assignment operators of vk::raii handles from using std::exchange to using std::swap ( #1607 )
2023-06-28 17:03:08 +02:00
Sharadh Rajaraman
6c1996f068
Add C++20 module interface file and tests ( #1582 )
...
* feat: exported vk::raii types in vulkan.ixx, with a small test
* feat: *almost* complete vulkan.ixx; missing functions in vulkan_funcs.hpp and constexpr auto defines
* Exported free functions in `vulkan_funcs.hpp` in `vulkan.ixx`
* Completed vulkan.ixx
Exported all types, structs, functions; need to handle anonymous namespace and getDispatchLoaderStatic()
* Moved `vk::anon-namespace::throwResultException` to `vk::detail::throwResultException` to solve linking errors
* Made `vk::getDispatchLoaderStatic` not `static`
`static`in namespace/global scope has to do with internal/external linkage, and not lifetime
* Fixed debug assert fail in `generateCppModuleStructUsings`
* Removed references to `.cppm`
* Formatting and versioning changes
- CMake version handling simplified
- vulkan.ixx includes new structs from new versions
- vulkan.hpp and vulkan_raii.hpp reformatted with clang-format 14
* Removed extraneous includes
- std::optional -> std::string::empty
- std::filesystem was unused
* Fixed constexpr function and value generation
- 'c' prefix removed
- Constants casing fixed
- Types for constants fixed
- Constants assigned to macros
- Ordering of constants and consteval functions fixed
* Moved constexprs to `vulkan.hpp`
- Added corresponding `using` statements to `vulkan.ixx`
- Changed `consteval auto(auto)` functions into templated SFINAE `constexpr` functions
* Formatting, signposting, misc fixes
- Added newlines around macro guards
- Added signposting comments for relevant groups of `using`-statements in `vulkan.ixx`
- Guarded createInstanceUnique with macro guard
- Use m_handles.at("").commands for Funcs
* Changed module file extension to `.cppm`
- It follows the rest of the project convention; `ixx` looks really weird next to `.hpp` and `.cpp`
- CMake transparently handles any extension anyway
* Added `VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE` to `vulkan.cppm`
* Added format traits and extension inspections
- Straightforward, since everything is hard-coded
* Added documentation about Vulkan-Hpp C++ module
- Compiler requirements
- CMake compilation
- Command-line examples
* Added vulkan_hash.hpp
- No need for `using`, since all declarations are template specialisations of existing `std` objects
* Documentation and comment fixes
- Removed extraneous CMake version comments
- Documentation about default dynamic dispatcher with the module
- Comment updates in the source code
* Moved constexpr defines and using statements
- Moved to after resultUsings in both vulkan.hpp and vulkan.cppm
- Also split up constexprDefinesAndUsings
- Used const_cast for constexprDefines()
* Used std::string instead of std::stringstream
- Some changes also in previous commit
- Also removed overly-clever ranges algorithms
* Simplified protection generation
- Removed `generateNotProtection`
- Added optional `bool` parameter to `generateProtection` for `#if !defined( ... )`
* Simplified Cpp20Modules CMakeLists
- Made C++ standard and libraries into parameters
- Removed FindVulkan call; already done
* `constexpr` generation fixed
- Made all generating functions `const`
- Removed typos and extra comments
- Extracted out filtering functionality into separate functions
* Simplified defines partition generation
- Added `DefinesPartition` struct as a member variable
- Added non-const function to write to the above in `readTypeDefines`
- Removed previous implementation that made many copies
* Added `generateUsingsAndProtection` lambda to RAII name generation
* Moved around `partitionDefines` to make more sense
- called once at the end of the constructor
- edited comments
* Updated headers to 1.3.255
* Removed std::ranges and ranges view adaptors
- CI isn't passing with them
* Fixed constexpr functions for C++11 and C++14
- Removed `enable_if_t` and `is_integral_v`
- Changed `auto` return type into `uint32_t`
---------
Co-authored-by: Sharadh Rajaraman <r.sharadh@yahoo.com.sg>
2023-06-28 14:10:51 +02:00
Andreas Süßenbach
5d8c550b0d
Mark vk::ResultValue::asTuple() & as deprecated, introduce vk::ResultValue::asTuple() && ( #1605 )
2023-06-27 11:31:29 +02:00
github-actions[bot]
3d95b910da
Update Vulkan-Headers to v1.3.255 ( #1604 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-06-26 14:12:49 +02:00
Andreas Süßenbach
389d1250cd
Add specializations of std::tuple_element and std::tuple_size for vk::StructureChain. ( #1602 )
2023-06-22 14:02:39 +02:00
Andreas Süßenbach
13808e5875
Introduce operator==() and operator!=() to compare vk-handles with nullptr. ( #1600 )
2023-06-22 09:07:26 +02:00
Andreas Süßenbach
98d2b53258
Fix some formatting. ( #1599 )
2023-06-21 13:33:29 +02:00
Andreas Süßenbach
397ffad84a
Fix defines in workflow files to enable compilation of tests and samples in CI. ( #1595 )
2023-06-20 14:43:35 +02:00
Andreas Süßenbach
9f89f760a6
Update Vulkan-Headers to v1.3.254 ( #1596 )
2023-06-19 15:02:19 +02:00
Andreas Süßenbach
c55cf16397
Fix wrong usage of 'structureChains' in generating functions returning a StructureChain and a vector of data. ( #1594 )
2023-06-19 12:46:04 +02:00
Andreas Süßenbach
bc19e479f9
Fix determination of StructureChainAllocater usage for returned parameters. ( #1591 )
2023-06-13 14:24:10 +02:00
GitHub
0ab2f4a18a
Update Vulkan-Headers to v1.3.253
2023-06-11 16:53:55 +02:00
GitHub
18bce4a642
Update Vulkan-Headers to v1.3.252
2023-06-03 05:57:43 -07:00
GitHub
9c3fb4f8df
Update Vulkan-Headers to v1.3.251
2023-05-30 02:36:42 -07:00
Andreas Süßenbach
523491a7df
Extent extension dependency inspection to allow multiple sets of dependencies per version. ( #1578 )
2023-05-17 10:23:27 +02:00
github-actions[bot]
d4d0ac4859
Update Vulkan-Headers to v1.3.250 ( #1574 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-05-08 11:07:25 +02:00
Andreas Süßenbach
f618b6bd5d
Cleanup work on enum value handling. ( #1573 )
2023-05-04 13:35:50 +02:00
github-actions[bot]
4e3e3e026d
Update Vulkan-Headers to v1.3.249 ( #1571 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-05-02 13:31:35 +02:00
Andreas Süßenbach
6bf5c311b2
Add support for a new class of functions ( #1570 )
...
plus refactor returnType generation
2023-04-26 10:56:57 +02:00
Andreas Süßenbach
95c622a64f
Extend support of some special type of functions. ( #1567 )
2023-04-24 18:06:06 +02:00
github-actions[bot]
f06c4aa1d3
Update Vulkan-Headers to v1.3.248 ( #1565 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-04-24 11:04:14 +02:00
github-actions[bot]
3bcbb39802
Update Vulkan-Headers to v1.3.247 ( #1560 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-04-17 11:55:11 +02:00
Andreas Süßenbach
3427b0039b
Introduce overload of getExtensionDepends to get availability and dependencies by vulkan version. ( #1559 )
2023-04-12 11:48:59 +02:00
Andreas Süßenbach
9de0959474
Introduce extension inspection function vk::getExtensionDepends. ( #1558 )
2023-04-11 17:49:02 +02:00
Andreas Süßenbach
d1d80ae723
Introduce extension inspection functions get[Device|Instance|Deprecated|Promoted|Obsoleted]Extension; renamed some of the previous extension inspection functions ( #1556 )
2023-04-11 09:14:50 +02:00
Andreas Süßenbach
a4841bc2f0
Add new extension inspection functions getExtensionObsoletedBy() and isExtensionObsoleted() ( #1555 )
2023-04-05 13:37:34 +02:00
Andreas Süßenbach
be1bb7645f
Add new extension inspection functions getExtensionPromotedTo() and isExtensionPromoted() ( #1553 )
2023-04-04 10:45:15 +02:00
Andreas Süßenbach
678295aa75
Update Vulkan-Headers to v1.3.246 ( #1551 )
2023-04-03 13:29:44 +02:00
Andreas Süßenbach
91a92c6c5f
Add functions isExtensionDeprecated() and getExtensionDeprecatedBy() to extension_inspection. ( #1547 )
2023-03-30 13:25:09 +02:00
Andreas Süßenbach
2175530fd0
Improved tokenizing of extension attribute "depends" ( #1546 )
2023-03-29 13:33:42 +02:00
Andreas Süßenbach
4420e1f91e
First set of extension inspection helper functions: isDeviceExtension and isInstanceExtension ( #1545 )
2023-03-28 17:33:11 +02:00
Andreas Süßenbach
9d5220db12
Extend default case in throwResultException to also get the actual message. ( #1544 )
2023-03-27 12:31:14 +02:00
github-actions[bot]
beb3f6f35e
Update Vulkan-Headers to v1.3.245 ( #1540 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-03-27 09:46:47 +02:00
Andreas Süßenbach
a11116394a
Simplified and corrected structure alias handling. ( #1538 )
2023-03-21 11:22:48 +01:00
github-actions[bot]
1bd3877dcc
Update Vulkan-Headers to v1.3.244 ( #1535 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-03-20 10:03:08 +01:00
github-actions[bot]
2acce33951
Update Vulkan-Headers to v1.3.243 ( #1531 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-03-13 10:38:56 +01:00
Andreas Süßenbach
f4b679c7e7
First step in generalizing handling of attribute "altLen". ( #1528 )
2023-03-09 10:04:33 +01:00
Andreas Süßenbach
9bee68b723
Adjust name of included vulkan header. ( #1527 )
2023-03-08 10:10:54 +01:00
Andreas Süßenbach
da4ab05a14
Adjust include snippet of vulkan[sc].hpp to actually use vulkan[sc]. ( #1526 )
2023-03-07 17:32:10 +01:00
Andreas Süßenbach
ae07aa7254
First version to support both, "vulkan" and "vulkansc". ( #1524 )
...
The files set generated is controlled by command line argument -api [vulkan|vulkansc]
2023-03-07 08:23:14 +01:00
Andreas Süßenbach
31554d2aca
Simplify enum value alias handling. ( #1523 )
...
* Simplify enum value handling.
* Simplified enum value generation
2023-03-06 08:37:40 +01:00
Andreas Süßenbach
9e66a8886a
Refactor reading procedures ( #1521 )
2023-03-01 10:17:02 +01:00
github-actions[bot]
c499dd0f79
Update Vulkan-Headers to v1.3.242 ( #1520 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-02-27 13:35:15 +01:00
github-actions[bot]
3853394ffa
Update Vulkan-Headers to v1.3.241 ( #1516 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-02-21 11:20:28 +01:00
Andreas Süßenbach
71acf3515b
Change requiredIn in TypeData from std::string to std::set<std::string> ( #1514 )
...
+ some member data renaming
2023-02-20 20:01:34 +01:00
Andreas Süßenbach
00eee2ef0f
Change referencedIn in CommandData from std::string to std::set<std::string> ( #1512 )
2023-02-20 15:58:14 +01:00
Andreas Süßenbach
ab08f20c01
Sort handle classes by feature and extension. ( #1500 )
2023-02-08 17:21:03 +01:00
github-actions[bot]
83adc3fa57
Update Vulkan-Headers to v1.3.240 ( #1497 )
...
Co-authored-by: GitHub <noreply@github.com>
2023-01-30 09:40:19 +01:00
Andreas Süßenbach
e40e6b641e
Update Vulkan-Headers to v1.3.239 ( #1489 )
2023-01-23 10:37:51 +01:00
Andreas Süßenbach
68512e6702
Add options for clang-format 15. ( #1480 )
2023-01-16 17:38:34 +01:00
Andreas Süßenbach
5e8166e284
Handle potential shadowing of function parameter name "objectType" with class member. ( #1476 )
2023-01-09 11:32:23 +01:00
github-actions[bot]
e4b8afe005
Update Vulkan-Headers to v1.3.238 ( #1472 )
...
Co-authored-by: GitHub <noreply@github.com>
2022-12-20 17:48:45 +01:00
Andreas Süßenbach
49a288231b
Add missing braces in union constructors on array members. ( #1469 )
2022-12-13 10:03:05 +01:00
Andreas Süßenbach
23a13e4707
Add support of clang_format version 13 and 14. ( #1468 )
2022-12-12 17:30:35 +01:00
github-actions[bot]
d3728e63a1
Update Vulkan-Headers to v1.3.237 ( #1466 )
...
Co-authored-by: GitHub <noreply@github.com>
Co-authored-by: Andreas Süßenbach <asuessenbach@nvidia.com>
2022-12-12 10:13:44 +01:00
GitHub
fb561d8092
Update Vulkan-Headers to v1.3.236
2022-12-06 00:11:19 +00:00
asuessenbach
561354a79b
Unify command set handling.
2022-11-29 13:38:36 +01:00
asuessenbach
556c0d3434
Introduce additional constructor for unions holding a fixed size array of data.
2022-11-24 08:59:50 +01:00
asuessenbach
9eab4b61e1
Add format trait function compatibilityClass()
2022-11-23 10:51:18 +01:00
GitHub
aed619647c
Update Vulkan-Headers to v1.3.235
2022-11-18 00:12:31 +00:00
asuessenbach
1b61fc6cf7
Use std::equal to compare array of null-terminated strings in structs.
2022-11-17 14:05:55 +01:00
asuessenbach
412471771a
Fix include guard of vulkan_static_assertions.hpp
2022-11-16 08:38:00 +01:00
asuessenbach
73276f2c26
Remove outdated conditions around two init functions of the DispatchLoaderDynamic.
2022-11-14 12:28:20 +01:00
asuessenbach
196978705e
Extent support of functions returning some typed value
2022-11-14 10:06:49 +01:00
GitHub
c873ad307d
Update Vulkan-Headers to v1.3.234
2022-11-11 00:12:48 +00:00
Andreas Süßenbach
d6493eae1d
Merge pull request #1438 from asuessenbach/flags
...
Fix Flags<T>::operator~()
2022-11-07 14:27:38 +01:00
asuessenbach
040686faae
Fix Flags<T>::operator~()
2022-11-07 11:28:15 +01:00
GitHub
92c36643f1
Update Vulkan-Headers to v1.3.233
2022-11-07 00:12:52 +00:00
GitHub
dcc1d9562f
Update Vulkan-Headers to v1.3.232
2022-10-28 00:12:55 +00:00
asuessenbach
2382684a69
Move explicitly defaulted copy assignment operators of structs into !defined(VULKAN_HPP_NO_STRUCT_CONSTRUCTORS) section
...
To explicitly default the copy assignment operator is only needed, if there are other constructors. Otherwise, some compilers warn about it.
2022-10-26 08:56:25 +02:00
asuessenbach
d5ad2e1883
Introduce function release() to all vk::raii::HandleTypes.
2022-10-25 12:11:29 +02:00
asuessenbach
1ab5fa6550
Support structs holding arrays of data, where the data size is given by a pointer-type.
...
In that case, no improved constructor and no improved setters are generated.
Plus some minor cleanup.
2022-10-24 10:39:19 +02:00
asuessenbach
4bf02b2588
Reorganized generating bitmasks in vulkan_enums.hpp.
2022-10-17 16:10:36 +02:00
GitHub
738e7c1423
Update Vulkan-Headers to v1.3.231
2022-10-14 00:16:32 +00:00
asuessenbach
302389d550
Templatized bitwise operators on FlagBits.
2022-10-10 11:04:27 +02:00
asuessenbach
a49fd51629
Minor cleanup on bitmask generation.
2022-10-05 16:58:40 +02:00
asuessenbach
a55e3eb2a0
Cleanup on protection handling
...
+ some other minor cleanup
2022-10-05 09:28:37 +02:00
asuessenbach
f5be57e498
Corrected handling of mutual exclusive arrays in constructors of structures VkAccelerationStructureTrianglesOpacityMicromapEXT and VkMicromapBuildInfoEXT
2022-10-04 11:34:04 +02:00
GitHub
3b5961d5ce
Update Vulkan-Headers to v1.3.230
2022-09-30 00:20:29 +00:00
GitHub
917ba7cbb0
Update Vulkan-Headers to v1.3.229
2022-09-23 00:12:32 +00:00
asuessenbach
6fe966c6d9
Fix inconsistency with return type of vk::raii::SwapchainKHR::getImages()
...
+ some minor cleanup
2022-09-21 10:08:07 +02:00
GitHub
27b37765e7
Update Vulkan-Headers to v1.3.228
2022-09-16 00:13:32 +00:00
asuessenbach
d0317af5a9
[raii] Add missing handling of successCode in move-construction and move-assignment of multi-successCode handles.
2022-09-14 12:21:26 +02:00
Andreas Süßenbach
984ab4e846
Merge pull request #1407 from asuessenbach/algorithm
...
Unconditionally include <algorithm> in vulkan.hpp.
2022-09-13 08:29:20 +02:00
asuessenbach
ac1eda539c
Unconditionally include <algorithm> in vulkan.hpp.
2022-09-12 17:10:56 +02:00
asuessenbach
34725b3192
Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute.
2022-09-12 16:53:44 +02:00
GitHub
6fd5e6dd72
Update Vulkan-Headers to v1.3.227
2022-09-09 00:11:55 +00:00
GitHub
5c406ec531
Update Vulkan-Headers to v1.3.226
2022-09-02 00:12:10 +00:00
Stephan Seitz
1e67e5aba4
fix: use feature test macros for usage of <format>
...
Fixes #1394
2022-08-29 23:12:25 +02:00
Stephan Seitz
8afaf0e2d0
fix: include <utility> in vulkan_raii.hpp for std::exchange
2022-08-29 23:12:25 +02:00
GitHub
33dad92cec
Update Vulkan-Headers to v1.3.225
2022-08-24 08:40:49 +02:00
asuessenbach
5480d192f5
Refactor the CMakeLists for all the samples; use vulkan.hpp/vulkan_raii.hpp as precompiled header.
2022-08-10 15:29:28 +02:00
asuessenbach
6e5824e21a
Update to Vulkan-Headers v1.3.224
2022-08-08 09:47:30 +02:00
asuessenbach
e8bf9bed9a
Move all the static_assertions from vulkan_handles.hpp and vulkan_structs.hpp into the new header vulkan_static_assertions.hpp
2022-08-03 11:53:57 +02:00
asuessenbach
a8a2c5f910
Refactor top-level file generation function.
2022-08-02 10:00:16 +02:00
Andreas Süßenbach
f50243e683
Merge pull request #1372 from asuessenbach/refactor
...
Refactor top-level function to generate vulkan.hpp
2022-08-01 17:40:22 +02:00
asuessenbach
893d6847bb
Refactor top-level function to generate vulkan.hpp
2022-08-01 16:40:15 +02:00
asuessenbach
cb4a573b42
Combine two types of commands into one generation function
2022-08-01 14:53:06 +02:00
Andreas Süßenbach
b95c02b89d
Merge pull request #1370 from asuessenbach/function
...
Combine two types of commands into one generation function
2022-08-01 13:54:24 +02:00
asuessenbach
e8179c8f49
Combine two types of commands into one generation function
2022-08-01 11:32:05 +02:00