Andreas Süßenbach
73f210a604
Three fixes: ( #1816 )
...
- do not create enhanced struct constructors, if the length of an array is determined by a member of that struct that is a pointer;
- check for error if a command parameter has a len attribute, but is not a pointer
- accept sync access and sync stage to be multiply aliased.
2024-02-28 13:04:56 +01:00
Andreas Süßenbach
789c215e74
Accept multiple XML <formats> tags. ( #1814 )
2024-02-26 15:38:33 +01:00
Andreas Süßenbach
29723f90a1
Update Vulkan-Headers to v1.3.278 ( #1810 )
2024-02-19 22:00:57 +01:00
Andreas Süßenbach
4c130b9051
Switch from using strncpy to strncpy_s. ( #1809 )
2024-02-19 16:06:28 +01:00
Andreas Süßenbach
38e3e8f800
Fix ordering determination of structs. ( #1807 )
2024-02-19 12:35:54 +01:00
Nikolai Siukosev
f1a38ff729
Disabled `vk::raii::exchange()` implementation for C++14 or newer ( #1803 )
...
* Disabled `vk::raii::exchange()` implementation for C++14 or newer. Replaced with `using std::exchange`
* Regenerated raii headers
2024-02-15 08:35:02 +01:00
Andreas Süßenbach
982afd2929
Special handling for command vkGetDeviceFaultInfoEXT: changed return type from ResultValue to ResultValueType ( #1800 )
2024-02-08 15:30:36 +01:00
Andreas Süßenbach
c74c22fb77
Use some special handling for struct vk::DeviceFaultInfoEXT ( #1796 )
2024-02-08 11:40:27 +01:00
Andreas Süßenbach
1b6ea3c295
Resolve warning on multiple len usage in struct VkVideoDecodeAV1PictureInfoKHR ( #1791 )
2024-02-06 13:16:16 +01:00
Andreas Süßenbach
9fa4459c50
Add special handling for call sequence in commands for vkGetDeviceFaultInfoEXT ( #1790 )
2024-02-05 15:44:40 +01:00
Andreas Süßenbach
6bdba3ef31
Add support for command argument attribute "len" with value "1". ( #1789 )
2024-02-05 13:13:38 +01:00
Andreas Süßenbach
bba05939b9
Extend the noDeleterFunction list by vkReleaseCapturedPipelineDataKHR. ( #1784 )
2024-02-02 21:52:35 +01:00
Andreas Süßenbach
81be6ce248
Add missing brace. ( #1783 )
2024-02-02 21:34:43 +01:00
Andreas Süßenbach
3a946ddfa1
Specify std::min to work on type size_t for copy operations in struct constructors. ( #1782 )
2024-02-02 21:22:52 +01:00
Andreas Süßenbach
7bd7372016
Refactored gathering initializers for enhanced struct constructors. ( #1781 )
2024-02-02 18:22:51 +01:00
Andreas Süßenbach
78bfb316aa
Add support of attribute "len" for array-sized structure members. ( #1779 )
2024-02-02 12:53:29 +01:00
Andreas Süßenbach
fa020b9bb5
Resolved some code analysis warnings. ( #1774 )
2024-01-23 14:10:52 +01:00
Andreas Süßenbach
3e6fed9492
Introduce implicit cast operators for vk::UniqueHandles, vk::SharedHandles and vk::raii::Handles ( #1771 )
2024-01-16 13:48:53 +01:00
Andreas Süßenbach
e4ea505027
Simplified typename checks on allocator template types ( #1770 )
2024-01-10 13:30:04 +01:00
Andreas Süßenbach
9eab68eb5d
Add function pointer check when using DispatchLoaderDynamic. ( #1769 )
2024-01-08 12:19:28 +01:00
Andreas Süßenbach
db5c141013
Downgrade error on multiple identical "depends" attributes for "require" sections for an extension to a warning. ( #1765 )
2024-01-04 11:37:46 +01:00
Andreas Süßenbach
d2f13e2f7f
Include <memory> in vulkan_raii.hpp to have std::unique_ptr available. ( #1762 )
2024-01-03 11:49:10 +01:00
Andreas Süßenbach
52666b03f5
Resolve warning on struct with multiple members referencing the same member for len. ( #1759 )
2024-01-02 14:52:16 +01:00
Andreas Süßenbach
197017ef20
Add support of noexcept-path for vk::raii classes ( #1742 )
2024-01-02 13:47:01 +01:00
Andreas Süßenbach
6b132a4628
Fix usage of wrong command name when determining the skip count for that command ( #1747 )
2023-12-11 14:46:16 +01:00
Andreas Süßenbach
84b77d1406
Add support for a new class of commands. ( #1741 )
2023-11-29 19:21:22 +01:00
Andreas Süßenbach
5bd1e56054
Explicitly ignore new limittype "not". ( #1740 )
2023-11-29 19:20:27 +01:00
Patrick O'Connell
6453966415
Add missing includes ( #1730 )
2023-11-16 08:55:30 +01:00
Andreas Süßenbach
846ac99cee
Remove warning on "ratified" and "supported" being different for an extension. ( #1728 )
2023-11-14 16:50:41 +01:00
Sharadh Rajaraman
26664a38a4
Add extension macros as constexpr ( #1710 )
...
* Initial implementation
* Reordered prefixes, added SPEC_VERSION macro
- And added using statements to module file
* Actually add changes to .hpp and .cppm files
* Fixes for extension constexpr macros
- renamed some vars
- simplified logic and control flow
* Grouped by extension name rather than macro guards
- And added titles to all extension constexprs
* Syntax changes
- Removed the structured binding and fixed asserts
- Used C++20 functions
- Added another assert to check that extension and specversion macros exist
* Remove `std::ranges` usage
2023-10-26 14:59:13 +02:00
Andreas Süßenbach
962979c679
Identify delete commands starting with "vkRelease" ( #1697 )
2023-10-16 16:01:35 +02:00
Andreas Süßenbach
c8cf030fe9
Add FlagBits type as required if it is not listed where the corresponding Flags type is required ( #1689 )
2023-10-10 21:54:36 +02:00
Anton Shangareev
b961a1a4c2
Fix C++20 module build with -DVULKAN_HPP_NO_SMART_HANDLE ( #1678 )
...
* Move SharedHandle and UniqueHandle under correct preprocessor guard in .cppm
* Fix VulkanHppGenerator
2023-10-09 12:25:01 +02:00
Andreas Süßenbach
f76ce52df5
Introduce using CppType type-trait for raii-classes, add two helper functions to filter the cpp-types out of a vector of raii-types. ( #1672 )
2023-10-05 15:19:16 +02:00
Andreas Süßenbach
f97633a220
Extend command generation to support not returning some return stuff and not templatizing a void pointer. ( #1666 )
2023-10-02 14:57:52 +02:00
Andreas Süßenbach
eccf541cd4
Add support of hex numbers for enum values ( #1671 )
2023-10-02 14:56:27 +02:00
Andreas Süßenbach
9aa679e5e8
Add support of attribute "type" for a enums in an extension, storing them as a constant. ( #1668 )
2023-09-28 13:23:31 +02:00
Andreas Süßenbach
f1b8af1157
Reduced listing of unused VkStructureType value from error to warning. ( #1664 )
2023-09-26 15:05:54 +02:00
Andreas Süßenbach
3e1e9b4653
Add support of commands returning void and getting two simple data type values. ( #1663 )
2023-09-26 12:02:43 +02:00
Andreas Süßenbach
37b50fa9ef
Revert "Update Vulkan-Headers to v1.3.265 ( #1661 )" ( #1662 )
...
This reverts commit 205758299b .
2023-09-25 15:28:32 +02:00
Andreas Süßenbach
205758299b
Update Vulkan-Headers to v1.3.265 ( #1661 )
2023-09-25 11:56:48 +02:00
Andreas Süßenbach
128261aa45
Add missing header in vulkan.cppm. ( #1659 )
2023-09-19 17:40:35 +02:00
Ilya Doroshenko
5d0d3b7bd9
Shared Handles ( #1619 )
...
* stage 1: added shared handles and all traits
* moved deleter to the shared part, now Shared handle weights 2 pointers
* Fixed Destroy Function
* generated headers
* At least no errors.
TODO: get image overload of shared handle back
make an example
* fixed all SFINAE issues, moved image specialization
* Added a sample
* made better example, added specialization for swapchain, added shared handles to readme
* Major update:
Fixed all wishes
Made std::shared_ptr do heavy lifting
Reduced code complexity
Added ParentType to basic handles
Added put and put_native for cross-abi usage
* more readme
* safer release()
removed put() for now
* better synchronization
inspired by STL shared_ptr implementation
* removed test shared pointer
* added forward type for better interop with VMA
added parent checking
* fixed getParent()
* added non-deleting overloads for Queue, DisplayKHR and PhysicalDevice
* Shared non-destoyed type now have handles
* using constructors are made to comply standard
* fixed leak
* shared handles migrated to own header,
made module entries
* header is independent now
* rebased repo, updated the example
* fixed most of the stuff
* renamed parent of, added guide to make shared handles
* vulkansc
* moved destructor to shared handle traits
* resolved issues with CI
* more relaxed memory ordering for release operation
* trying to remove submodule
* renamed to destructorType
* suppressed function cast warning
* only GCC should be affected
2023-09-19 13:04:36 +02:00
Andreas Süßenbach
d60453f6ea
Introduce hard-coded default values for some structure members. ( #1658 )
2023-09-19 12:05:06 +02:00
Andreas Süßenbach
39c8c02de0
Make the tag on constants uppercase. ( #1657 )
2023-09-18 18:03:18 +02:00
Andreas Süßenbach
9004069b9b
Move Flags<> and FlagTraits<> from vulkan.hpp to vulkan_enums.hpp ( #1654 )
2023-09-07 18:42:46 +02:00
Andreas Süßenbach
d4704cce01
Make C++20 modules work with the defaultDispatchLoaderDynamic. ( #1651 )
...
* Make C++20 modules work with the defaultDispatchLoaderDynamic.
* Add vulkan_hpp_macros.hpp to list of installed files.
* Adjust the text on module in the readme.
* Rename module from vulkan to vulkan_hpp
* Adjust some comments.
* Add a little disclaimer to vulkan.cppm.
2023-09-07 15:20:10 +02:00
Andreas Süßenbach
a2e240c7e7
Relax check for constants as array size: also allow potentially externally defined constants ( #1652 )
2023-09-04 12:31:50 +02:00
Andreas Süßenbach
23606b20f7
Guard vk::raii names in vulkan.cppm just as in vulkan_raii.hpp. ( #1650 )
2023-08-28 13:30:00 +02:00
Andreas Süßenbach
ef0dbd602b
Correct includes in vulkansc-headers. ( #1645 )
2023-08-28 10:21:34 +02:00
Andreas Süßenbach
57d54a0ba6
Introduce a helper function to dynamically map from vk::ObjectType to vk::DebugReportObjectTypeEXT. ( #1639 )
2023-08-16 08:37:43 +02:00
Andreas Süßenbach
e2f5348e28
Relax check on "depends" for extension requires. ( #1637 )
2023-08-10 10:35:19 +02:00
Andreas Süßenbach
0e3e8967be
Extend the depends-handling in readExtension. ( #1635 )
2023-08-07 13:34:43 +02:00
Andreas Süßenbach
b988e54dad
Sort constants by feature and extension. ( #1628 )
2023-07-26 22:12:40 +02:00
Andreas Süßenbach
24045ff3f4
Add support of alias'ed enums for IndexType/CppType traits generation ( #1627 )
2023-07-26 10:17:13 +02:00
Andreas Süßenbach
99027b5a24
Changed calls to std::map<>::find() to std::map<>::contains(), when appropriate. ( #1623 )
2023-07-17 09:48:44 +02:00
Andreas Süßenbach
207031caa4
change calls to std::find, std::find_if, and std::find_if_not to functionally identical calls to std::any_of, std::all_of, and std::none_of, when appropriate ( #1621 )
2023-07-13 11:26:01 +02:00
Andreas Süßenbach
069c3b875e
Introduce VideoHppGenerator. ( #1618 )
2023-07-11 15:39:17 +02:00
Sharadh Rajaraman
f4abba455e
Bug fixes for `vulkan.cppm` ( #1616 )
...
* Bug fixes for C++20 module
- Removed nested `export` keyword for `vk::raii` namespace in C++ module file
- Fixed macro in `vulkan.cppm` for `vk::DynamicLoader`: changed from `VULKAN_HPP_DYNAMIC_LOADER_TOOL` to `VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL`
- Moved VulkanHppModule declaration before generator
- Fixed `CMakeLists.txt` for `Cpp20Modules` executable target
* Use `VULKAN_HPP_CONSTEXPR_INLINE` for constants in `vulkan.hpp`
- Added VULKAN_HPP_CONSTEXPR_INLINE macro definition
- Allow external linkage for these constants in C++17 and later
2023-07-10 08:46:50 +02:00
Andreas Süßenbach
7a4ee5eaaf
Moved check on enum aliases from readTypeEnum to checkEnumCorrectness. ( #1613 )
2023-07-04 13:53:21 +02:00
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
13808e5875
Introduce operator==() and operator!=() to compare vk-handles with nullptr. ( #1600 )
2023-06-22 09:07:26 +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
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
babfbddf32
Add support for new element <sync> in vk.xml ( #1590 )
...
That element tree is just parsed and some checks are done.
2023-06-13 14:25:23 +02:00
Andreas Süßenbach
bc19e479f9
Fix determination of StructureChainAllocater usage for returned parameters. ( #1591 )
2023-06-13 14:24:10 +02: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
Andreas Süßenbach
f618b6bd5d
Cleanup work on enum value handling. ( #1573 )
2023-05-04 13:35:50 +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
Andreas Süßenbach
20cb37e39f
Add support of new extension attribute "ratified". ( #1563 )
2023-04-17 13:51:24 +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
35ab2bb711
Fix handling of multiple vs. single success codes on handle creation with vulkan_raii.hpp. ( #1550 )
2023-04-03 12:10:39 +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
Andreas Süßenbach
cfed28c23d
Resolve warning on a struct with multiple array members with the same len. ( #1543 )
2023-03-27 11:06:47 +02:00
Andreas Süßenbach
01db23af60
Minor cleanup work. ( #1539 )
2023-03-22 08:52:35 +01:00
Andreas Süßenbach
a11116394a
Simplified and corrected structure alias handling. ( #1538 )
2023-03-21 11:22:48 +01:00
Andreas Süßenbach
c45c87b559
Minor cleanup on supported/unsupported features/extensions. ( #1537 )
2023-03-21 08:10:00 +01:00
Andreas Süßenbach
086af6f3d7
Removed an invalid assertion in readRequireEnum. ( #1534 )
2023-03-16 17:16:12 +01:00
Andreas Süßenbach
044844394c
Add support for a new class of commands. ( #1533 )
2023-03-15 13:02:48 +01:00
Andreas Süßenbach
fa079aefaa
Improve handling of attribute "stride" ( #1532 )
2023-03-13 14:48:55 +01:00
Andreas Süßenbach
aac3be4855
Second step in generalizing handling of attribute "altLen" ( #1529 )
2023-03-13 09:08:01 +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
81633480b9
Simplified enum value handling ( #1522 )
2023-03-02 22:14:37 +01:00
Andreas Süßenbach
9e66a8886a
Refactor reading procedures ( #1521 )
2023-03-01 10:17:02 +01:00
Andreas Süßenbach
bceab2b9d2
Change assertion to condition on generating the vector size check. ( #1518 )
2023-02-23 10:07:26 +01:00
Andreas Süßenbach
2207dc92c6
Corrected handling of attribute "depends" of <require> sections on extending enums. ( #1517 )
2023-02-22 16:20:44 +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
7c073da2c1
Adjust handling of attribute "depends" in <extension> ( #1508 )
2023-02-16 16:07:33 +01:00
Andreas Süßenbach
a3cd63a4e2
Add handling of attribute "deprecated", extend handling of attribute "api" ( #1506 )
2023-02-16 13:12:55 +01:00
Andreas Süßenbach
1e95278b04
Renamed member functions and variables from "skipped" to "removed". ( #1505 )
2023-02-16 08:24:33 +01:00
Andreas Süßenbach
25289b1d0d
Added missing support of attribute "comment" in require clause of extensions. ( #1504 )
2023-02-15 17:13:02 +01:00
Andreas Süßenbach
ab08f20c01
Sort handle classes by feature and extension. ( #1500 )
2023-02-08 17:21:03 +01:00
Andreas Süßenbach
e651117495
Unify detection logic for raii- and non-raii-command-generation ( #1499 )
2023-02-02 14:09:45 +01:00
Andreas Süßenbach
d796a40abb
Add support for filtering out vulkansc stuff. ( #1496 )
2023-01-26 17:12:29 +01:00
Andreas Süßenbach
db11b8b62b
Add support for a new type of functions. ( #1492 )
2023-01-23 16:41:43 +01:00
Andreas Süßenbach
8179bd05bd
Add support for a new class of commands. ( #1481 )
2023-01-20 20:41:26 +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
Andreas Süßenbach
49a288231b
Add missing braces in union constructors on array members. ( #1469 )
2022-12-13 10:03:05 +01:00
asuessenbach
5accdbc9d5
Adjust ci-ubuntu.yml to latest changes of runners.
2022-12-10 21:11:05 +01:00
asuessenbach
561354a79b
Unify command set handling.
2022-11-29 13:38:36 +01:00
asuessenbach
1365fa3c27
Simplyfied some generator functions by combining a couple of bool arguments into a Flags object.
2022-11-28 16:53:24 +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
ad5f67d330
Add support of more complex logic of attribute <depends>
2022-11-23 17:42:23 +01:00
asuessenbach
9eab4b61e1
Add format trait function compatibilityClass()
2022-11-23 10:51:18 +01:00
asuessenbach
6412502686
Add support for a new class of functions.
2022-11-22 19:22:16 +01: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
asuessenbach
7b5fc43e10
Add support for attribute "depends".
2022-11-09 16:25:43 +01:00
asuessenbach
d481557fef
Improved plural-s detection in command names.
2022-11-09 09:58:48 +01:00
asuessenbach
33f2837650
Add support for handle creation functions taking createInfo structs that are not an anchor of a structure chain.
2022-11-07 11:30:47 +01: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
0f07e41849
Add support for functions getting a structure chain and having more than one success codes.
2022-10-24 12:33:27 +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
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
asuessenbach
7dc59adf40
Add support of "opticalflow" as a candidate for the "queues" attribute of a command.
2022-09-28 12:09:49 +02:00
asuessenbach
1173c9ab77
Allow union attribute "selection" to have multiple comma-separted values.
2022-09-27 08:50:36 +02:00
asuessenbach
6fe966c6d9
Fix inconsistency with return type of vk::raii::SwapchainKHR::getImages()
...
+ some minor cleanup
2022-09-21 10:08:07 +02:00
asuessenbach
a630fcdf84
Explicitly ignore new command attribute "tasks"
2022-09-19 10:21:43 +02: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
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
asuessenbach
02c8049f42
Switch to C++20 for the Generator + some minor cleanup.
2022-09-06 18:22:04 +02:00
asuessenbach
5ede04aa9d
Add support for functions returning more than one success code and getting two values.
2022-08-30 10:47:43 +02: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
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
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
Andreas Süßenbach
921995589d
Merge pull request #1375 from asuessenbach/error
...
Add missing string assignment.
2022-08-02 14:12:07 +02:00
Andreas Süßenbach
a57b04a569
Merge pull request #1374 from asuessenbach/refactor
...
Refactor top-level file generation function.
2022-08-02 12:07:23 +02:00
asuessenbach
deae8ceb49
Add missing string assignment.
2022-08-02 12:06:32 +02:00
asuessenbach
a8a2c5f910
Refactor top-level file generation function.
2022-08-02 10:00:16 +02:00
asuessenbach
95507d1e7c
Removed some dead code.
2022-08-02 08:18:26 +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
Andreas Süßenbach
e23588f893
Merge pull request #1369 from asuessenbach/attribute
...
Add "videocoding" as an optional attribute for commands.
2022-08-01 13:52:01 +02:00
asuessenbach
e8179c8f49
Combine two types of commands into one generation function
2022-08-01 11:32:05 +02:00
asuessenbach
9c4a906d07
Add "videocoding" as an optional attribute for commands.
2022-08-01 10:11:45 +02:00
asuessenbach
d3c95e9527
Add support for functions returning void, that get you a some data behind a void *.
2022-08-01 10:00:11 +02:00
asuessenbach
056abda3e2
Reduce number of included headers
2022-07-27 16:39:37 +02:00
asuessenbach
3aae157e5b
Move the vk::to_string functions into a separate header vulkan_to_string.hpp.
2022-07-26 11:19:42 +02:00
asuessenbach
527e52a1bd
Introduce VULKAN_HPP_NO_TO_STRING to optionally remove the various vk::to_string functions.
...
Also extend the samples to hold some local version of the needed to_string functions in case VULKAN_HPP_NO_TO_STRING is defined.
2022-07-25 17:11:30 +02:00
asuessenbach
75f02617cb
Revert struct conversion operators to be implicit.
2022-07-19 08:18:22 +02:00
asuessenbach
b81fb59ca6
Remove some dead code.
2022-07-18 10:28:20 +02:00
asuessenbach
248e6eeef3
Combine two types of commands into one generation function
2022-07-13 08:32:02 +02:00
asuessenbach
8acf224201
Add support for functions returning some data with error codes.
2022-07-12 09:00:47 +02:00
asuessenbach
bc6d481a5b
Remove some dead code.
2022-07-11 13:54:33 +02:00
Andreas Süßenbach
fac74444fa
Extend check for function pointers on creating compare operators of structs. ( #1348 )
2022-07-07 11:41:43 +02:00
asuessenbach
49a2fc679a
Add support for comma-separated list of names for attribute "extension" of element <require> in element <extension>.
2022-07-04 18:02:22 +02:00
Andreas Süßenbach
86cc8f2ed1
Merge pull request #1345 from asuessenbach/attributes
...
Add support for new attribute "validstructs"; ignore new possible values for attribute "limittype".
2022-07-04 16:08:42 +02:00
asuessenbach
a7d2d85d63
Add support for new attribute "validstructs"; ignore new possible values for attribute "limittype".
2022-07-04 11:37:22 +02:00
asuessenbach
0d9ca30378
Removed some dead code.
2022-07-04 10:59:55 +02:00
asuessenbach
2ddd380a23
Combine two types of commands into one generation function
2022-06-29 08:13:42 +02:00
asuessenbach
39be44dc65
Combine two types of commands into one generation function
2022-06-28 13:33:36 +02:00
asuessenbach
429e610f7e
Combine two types of commands into one generation function
2022-06-28 08:41:36 +02:00
asuessenbach
448efe9edb
Combine two types of commands into one generation function
2022-06-27 10:03:03 +02:00
asuessenbach
5075c94b8a
Combine two types of commands into one generation function
2022-06-23 11:42:03 +02:00
asuessenbach
b7146538a5
Combine two types of commands into one generation function
2022-06-21 09:22:03 +02:00
asuessenbach
2c536b75b9
Combine two types of commands into one generation function
2022-06-20 12:26:30 +02:00
Andreas Süßenbach
94244d51d5
Merge pull request #1329 from asuessenbach/spaceship
...
Change used check for using spaceship operator from "impl" to "lib".
2022-06-20 11:28:48 +02:00
asuessenbach
cbb02bf5ab
Change used check for using spaceship operator from "impl" to "lib".
2022-06-20 09:32:27 +02:00
asuessenbach
de7127a963
Combine two types of commands into one generation function
2022-06-15 11:57:25 +02:00
asuessenbach
66fc081783
Combine two types of commands into one generation function
2022-06-14 10:53:50 +02:00
asuessenbach
4630feb760
Combine two types of commands into one generation function
2022-06-14 09:08:56 +02:00
Andreas Süßenbach
15788c576c
Merge pull request #1322 from asuessenbach/spaceship
...
Remove spaceship operator for structures containing function pointers
2022-06-13 12:05:51 +02:00
asuessenbach
67f9357bb8
Remove spaceship operator for structures containing function pointers
2022-06-13 10:54:04 +02:00
asuessenbach
a7d6e1be5d
Combine two types of commands into one generation function
2022-06-08 16:39:15 +02:00
asuessenbach
484373a54a
Combine two types of commands into one generation function
2022-06-08 08:53:11 +02:00
asuessenbach
d691f5f0e8
Combine two types of commands into one generation function
2022-06-07 18:02:52 +02:00
asuessenbach
5c571c1b9a
Combine two types of commands into one generation function
2022-05-25 20:21:21 +02:00
asuessenbach
b35993287e
Combine two types of commands into one generation function
2022-05-24 09:01:00 +02:00
asuessenbach
d7a1a254d4
Combine two types of commands into one generation function
2022-05-23 10:31:40 +02:00
asuessenbach
e3e124e5e2
Combine two types of commands into one generation function
2022-05-19 08:34:26 +02:00
asuessenbach
3f240ea665
Combine two types of commands into one generation function
2022-05-18 09:24:39 +02:00
asuessenbach
66c3c89d8e
Combine two types of commands into one generation function
2022-05-17 10:35:57 +02:00
Teodor Spæren
466fab3dfc
Fix missing <utility> import for std::exchange
...
In GCC 12, std::exchange is no longer implicitly included in many header files, and so must be explicitly included by including `utility`.
2022-05-15 12:15:07 +02:00
asuessenbach
b3863a385b
Combine two types of commands into one generation function
2022-05-12 09:02:27 +02:00
asuessenbach
66953f4039
Combine two types of commands into one generation function
2022-05-11 10:00:53 +02:00
asuessenbach
1bdb86cea9
Cleanup on generateDataDeclarations.
2022-05-09 13:44:08 +02:00
asuessenbach
7375def842
Cleanup on return type generation
2022-05-04 17:06:28 +02:00
asuessenbach
a591ef69e3
(re-)add support of commands enumerating a chained structure type.
2022-05-04 09:55:27 +02:00
asuessenbach
f9ad86aef8
Remove deprecated implicit-cast operators on vk::ResultValue.
2022-05-03 09:47:58 +02:00
asuessenbach
145c10e945
Combine two types of commands into one generation function
2022-05-02 17:01:38 +02:00
asuessenbach
b45a44b479
Combine two types of commands into one generation function
2022-04-28 16:32:33 +02:00
Andreas Süßenbach
734457987b
Merge pull request #1294 from asuessenbach/check
...
Add check that every member type of a struct that begins with "Vk" is listed in a feature or extension.
2022-04-27 15:43:42 +02:00
asuessenbach
825bc59313
Add check that every member type of a struct that begins with "Vk" is listed in a feature or extension.
2022-04-27 14:30:52 +02:00
asuessenbach
74fd07216e
Combine two types of commands into one generation function
2022-04-27 13:37:28 +02:00
asuessenbach
e5921db439
Combine two types of commands into one generation function
2022-04-26 12:35:15 +02:00
asuessenbach
90afc89e66
Combine two types of commands into one generation function
2022-04-21 11:27:39 +02:00
Andreas Süßenbach
828ac8e246
Merge pull request #1288 from phantom10111/array-proxy-with-raw-arrays
...
Add ArrayProxy constructors with support for raw array with size
2022-04-19 17:38:31 +02:00
Andreas Süßenbach
e9c343c402
Merge pull request #1289 from asuessenbach/function
...
Combine two types of commands into one generation function
2022-04-19 13:34:44 +02:00
asuessenbach
769827ed3d
Combine two types of commands into one generation function
2022-04-19 11:59:33 +02:00
phantom10111
5df998c0d6
Add ArrayProxy constructors with support for raw array with size
...
There's a little known C language family feature, which makes it
possible to take a pointer or reference to an array with size. Use this
feature to add constructors to ArrayProxy and ArrayProxyNoTemporaries
which can wrap raw arrays and deduce their size automatically.
2022-04-19 11:49:09 +02:00
phantom10111
9e95c0072d
Make type conversions implicit for dispatchable handles
...
Vulkan handles are not typesafe on 32-bit platforms, but only for
non-dispachable handles. Dispatchable handles are opaque struct pointers
on all platforms, and thus typesafe.
This commit makes all conversions for dispatchable handles implicit,
regardless of VULKAN_HPP_TYPESAFE_CONVERSION setting.
2022-04-15 11:24:30 +02:00
asuessenbach
9c99d1b2ce
Combine two types of commands into one generation function
2022-04-14 08:03:15 +02:00
asuessenbach
4ba01be8d1
Combine two types of commands into one generation function.
2022-04-13 09:45:31 +02:00
asuessenbach
956cda998b
Combine two types of commands into one generation function.
2022-04-12 13:56:21 +02:00
asuessenbach
26e2fc42c8
Combine two types of commands into one generation function.
2022-04-07 16:04:26 +02:00
asuessenbach
d50485c5c7
Combine two types of commands into one generation function.
2022-04-07 08:48:55 +02:00
asuessenbach
45e5418332
Combine two types of commands into one generation function.
2022-04-05 10:02:00 +02:00
asuessenbach
0328693bba
Add support for commands returning void and getting you a single opaque object represented by a size and a void-pointer
2022-04-04 11:58:06 +02:00
asuessenbach
dd6deccf52
Add missing allocator template argument in createResultValue helper functions working on std::vector<UniqueHandle> types.
2022-04-04 10:00:13 +02:00
asuessenbach
d966e4e3ac
Remove surplus closing brace in command generation template.
2022-03-31 21:02:32 +02:00
asuessenbach
6fca13eaba
Add support of commands returning void and getting a vector of data.
2022-03-31 17:52:32 +02:00
asuessenbach
333083e44e
Combine two types of commands into one generation function.
2022-03-31 09:52:06 +02:00
asuessenbach
16a44bb94f
Re-add accidentally removed version of createResultValue
...
+ add test project for UniqueHandles.
2022-03-30 09:45:51 +02:00
asuessenbach
f60264fee5
Resolved an assertion in readTypesTypeStruct.
2022-03-29 08:41:49 +02:00
asuessenbach
a8d47f4694
Combine two types of commands into one generation function.
2022-03-28 17:52:45 +02:00
asuessenbach
aad66ebe1c
Add support for commands enumerating some stuff, without any error codes.
2022-03-28 09:58:37 +02:00
asuessenbach
d90c6cbbfc
Add pNext as optional last argument to constructors of structs that hold a pNext.
2022-03-23 17:08:19 +01:00
asuessenbach
5e8fb94890
Add support for commands getting two values.
2022-03-23 10:00:40 +01:00
Andreas Süßenbach
ecc6d37d91
Merge pull request #1257 from asuessenbach/constructor
...
Introduce copy constructor and assignment operator for vk::raii classes that hold handles without a destructor.
2022-03-23 08:17:47 +01:00
asuessenbach
23c11fe38d
Introduce copy constructor and assignment operator for vk::raii classes that hold handles without a destructor.
2022-03-22 13:53:21 +01:00
Stephan Seitz
5a8532b0f7
fix: include `<algorithm>` in VulkanHppGenerator.cpp
...
This fixes the build on Clang with `-stdlib=libc++` (if you disable -Werror as there are a lot of warnings)
```
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:781:28: error: no member named 'find_if_not' in namespace 'std'
auto endDigit = std::find_if_not( beginDigit, valueName.end(), []( std::string::value_type c ) { return isdigit( c ); } );
~~~~~^
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:1261:15: error: no member named 'find_if_not' in namespace 'std'
return std::find_if_not( vectorParams.begin(),
~~~~~^
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:2041:24: error: no member named 'find_if_not' in namespace 'std'
valid = ( std::find_if_not( destructorIt->second.params.begin(), destructorIt->second.params.end(), isConstructorCandidateParam ) ==
~~~~~^
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:2145:21: error: no member named 'find_if_not' in namespace 'std'
( std::find_if_not( sd.second.members.begin(), sd.second.members.end(), isMember ) == sd.second.members.end() );
~~~~~^
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:6047:17: error: no member named 'count_if' in namespace 'std'
( std::count_if( arrayIt->type.postfix.begin(), arrayIt->type.postfix.end(), []( char c ) { return c == '*'; } ) < 2 ) )
~~~~~^
5 errors generated.
```
Fixes #1175 together with the optional inclusion of vulkan_hash.hpp
2022-03-22 13:43:38 +01:00
asuessenbach
a104fd65d3
Combine two types of commands into one generation function.
2022-03-16 13:51:43 +01:00
asuessenbach
aca9dd319e
Add some error handling for a std::system call.
2022-03-16 09:35:26 +01:00
asuessenbach
ae11e13e0b
Combine two types of commands into one generation function.
...
Generation of functions that return a VkResult and either get some data or not are combined into one function.
+ some minor cleanup
2022-03-15 11:58:55 +01:00
Andreas Süßenbach
582bade14d
Merge pull request #1242 from asuessenbach/deprecated
...
Remove deprecated cpp_type.
2022-03-15 08:52:49 +01:00
Andreas Süßenbach
f759596be8
Merge pull request #1241 from asuessenbach/cleanup
...
Combine two types of commands into one generation function.
2022-03-14 17:32:33 +01:00
asuessenbach
cf5ecd7cc6
Remove deprecated cpp_type.
2022-03-14 15:13:33 +01:00
asuessenbach
f58ffe385f
Combine two types of commands into one generation function.
...
Generation of functions that get a StructureChain or some value are combined into one function.
2022-03-14 14:54:56 +01:00
asuessenbach
8a921fc90c
Explicitly mark a call to std::system() as void.
2022-03-14 10:56:20 +01:00
asuessenbach
2148249e0f
Minor cleanup work in command generation.
2022-03-10 17:41:47 +01:00
asuessenbach
611365b986
Updated clang_format options
2022-03-09 12:28:52 +01:00
asuessenbach
4fd8ad4baa
Minor cleanup work in command generation.
2022-03-09 10:13:51 +01:00
Andreas Süßenbach
d493aa4ab6
Merge pull request #1234 from theHamsta/fix-warnings
...
chore(warnings): fix warnings about unused variables in Release mode
2022-03-08 13:57:29 +01:00
Stephan Seitz
c747ca4588
chore(warnings): fix warnings about unused variables in Release mode
...
```
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:9105:12: error: unused variable 'constructorCommandIt' [-Werror,-Wunused-variable]
auto constructorCommandIt = m_commands.find( handle.second.constructorIts.front()->first );
^
/home/stephan/projects/Vulkan-Hpp/VulkanHppGenerator.cpp:9732:12: error: unused variable 'handleIt' [-Werror,-Wunused-variable]
auto handleIt = m_handles.find( "Vk" + parentType );
```
2022-03-08 11:46:03 +01:00
asuessenbach
7be761b203
Add template parameter support to generateCommandVoidGetChain.
2022-03-08 09:11:11 +01:00
asuessenbach
04cca4cfbc
Add template parameter support to generateCommandVoidGetValue.
2022-03-07 12:19:32 +01:00