Commit Graph

316 Commits

Author SHA1 Message Date
asuessenbach
aad66ebe1c Add support for commands enumerating some stuff, without any error codes. 2022-03-28 09:58:37 +02:00
asuessenbach
5e8fb94890 Add support for commands getting two values. 2022-03-23 10:00:40 +01:00
asuessenbach
a104fd65d3 Combine two types of commands into one generation function. 2022-03-16 13:51:43 +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
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
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
asuessenbach
02cd5ee1c9 Combine two types of commands into one generation function. 2022-03-02 17:57:36 +01:00
asuessenbach
5fe410279a Change ColumnLimit with clang-format from 120 to 160. 2022-02-28 10:11:04 +01:00
asuessenbach
85510bf12c Combine two types of commands into one generation function. 2022-02-24 09:09:45 +01:00
asuessenbach
fe8fad5d96 Combine two types of commands into one generation function. 2022-02-23 08:31:36 +01:00
asuessenbach
7f58864c78 Combine two types of command into one generation function. 2022-02-22 10:03:17 +01:00
asuessenbach
b8522e483c Introduce member function clear() for raii-classes. 2022-02-15 10:50:52 +01:00
asuessenbach
b1a822983d Introduce member function swap() for raii-classes. 2022-02-14 15:11:46 +01:00
asuessenbach
6f2dd058a0 Unified generation of a special type of commands.
Commands returning a VkResult with one or more error codes specified, getting no non-const pointer and zero or more vectors are combined into one function, no matter if it is specified to have one or more success codes.
2022-02-09 09:27:30 +01:00
asuessenbach
c25e890527 Remove support of all functions marked as deprecated. 2022-02-07 10:09:46 +01:00
asuessenbach
c29a549f8c Generalize command generation for a specific type of commands
Commands returning a VkResult, with multiple success codes and at least one error code, that get no non-const pointers and zero or more input vectors are generalized into one function.
2022-01-24 10:19:23 +01:00
asuessenbach
b643095d78 Generalize command generation for a specific type of commands
Commands returning a VkResult, with a single success code and at least one error code, that get no non-const pointers and zero or more input vectors are generalized into one function.
2022-01-19 08:45:28 +01:00
asuessenbach
350a74f1e1 Generalize command generation for a specific type of commands
Commands returning void, that get no non-const pointers but one or more const pointers or vectors are generalized into one function.
2022-01-13 16:16:16 +01:00
asuessenbach
192bf5f3ed Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, and any number of const pointers is generalized to support const void pointer as well, replacing those arguments by const& on a templated type.
2022-01-11 09:45:35 +01:00
asuessenbach
6cbe0ba5e2 Generalize command generation for a specific type of commands
Commands returning a VkResult with a single success- and multiple error codes, that get no non-const pointers and no vectors, just one const pointer is generalized to support a const void pointer as well, replacing that argument to a const& on a templated type.
2022-01-10 11:50:11 +01:00
asuessenbach
eecfe9bf42 Extend operator==() and operator<=>() on structures to compare null-terminated string members 2022-01-05 16:20:13 +01:00
Andreas Süßenbach
cb5347205f
Merge pull request #1173 from asuessenbach/deprecated
Remove deprecated version of function Device::getCalibratedTimestampsEXT().
2022-01-04 08:51:22 +01:00
asuessenbach
10e8f07e85 Remove deprecated version of function Device::getCalibratedTimestampsEXT(). 2022-01-03 15:33:51 +01:00
asuessenbach
edc0ce883f Restrict reflect() on structures to non-GCC and GCC version above 7.5. 2022-01-03 14:17:12 +01:00
asuessenbach
ce3eb55ada Introduce simple reflection function on vk-structs
Used that to simplify comparison operators.
2021-12-16 14:35:17 +01:00
asuessenbach
cdb64cdefd Generate std::hash specializations into the new file vulkan_hash.hpp, requiring C++14 for std::hash specializations of the vulkan structures. 2021-12-13 17:00:00 +01:00
asuessenbach
3515c720fc Introduce support of std::hash for vk-structures. 2021-12-02 23:28:26 +01:00
asuessenbach
5d5182ce70 Introduce a couple of trait functions on vk::Format. 2021-11-29 10:00:19 +01:00
asuessenbach
976debbd80 Add support for new elements <formats> in vk.xml. 2021-11-23 13:23:14 +01:00
asuessenbach
bf73d74aa9 Remove deprecated versions of function PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR 2021-11-16 13:29:50 +01:00
Andreas Süßenbach
323c921a19
Merge pull request #1132 from Saalvage/more-constexpr
More support for constexpr
2021-11-15 17:59:19 +01:00
asuessenbach
b5d312187c Add support of functions enumerating chained structure data.
+ slightly reordered error handling in enumerating functions.
2021-11-15 15:05:17 +01:00
Salvage
4017a99055
More constexpr support! 2021-11-12 02:59:37 +01:00
asuessenbach
e5f9ef470e Minor cleanup work. 2021-11-11 16:00:22 +01:00
asuessenbach
2a55e8ef2f Minor cleanup work. 2021-11-09 08:40:53 +01:00
asuessenbach
0beeac873a Remove dumb parent-pointer in raii-objects. 2021-11-08 17:31:36 +01:00
asuessenbach
c7838676bd Minor cleanup work. 2021-11-02 09:31:32 +01:00
asuessenbach
e725ff31bd Refactor parent member of the vk::raii classes. 2021-10-25 13:37:43 +02:00
asuessenbach
714b953e51 Minor cleanup work. 2021-10-25 09:30:04 +02:00
asuessenbach
5a4eceb0ab Introduce factory methods for the RAII handle classes. 2021-10-18 13:42:45 +02:00
asuessenbach
7645e4eb82 Minor cleanup work. 2021-10-18 10:35:17 +02:00
asuessenbach
dcb654bc0b Minor cleanup work.
+ changed CXX_STANDARD for VulkanHppGenerator from 14 to 17.
2021-10-11 10:20:26 +02:00
asuessenbach
6db58639f8 Add support of functions taking and returning a vector of data 2021-10-06 12:51:26 +02:00
asuessenbach
0122305ce8 Some more code cleanup 2021-10-04 12:10:04 +02:00
asuessenbach
3fdf58cd5f Minor cleanup work. 2021-10-04 09:34:57 +02:00
asuessenbach
11f18e8502 Add "singular" version of functions returning a vector of values and one value, now returning just a pair of values 2021-09-27 15:32:23 +02:00
asuessenbach
f555afeac6 Refactor command generation of RAII handles. 2021-09-27 11:30:20 +02:00
asuessenbach
62ee069886 Minor cleanup work. 2021-09-23 14:00:07 +02:00
asuessenbach
80acc02777 Refactor command generation. 2021-09-22 17:25:22 +02:00
asuessenbach
4e055c376d Move argument type check of func pointers to final check. 2021-09-21 14:20:24 +02:00
asuessenbach
b39d6aa44d Refactor RAII-handle constructor generation. 2021-09-21 08:36:04 +02:00
asuessenbach
65e9dd2e3c Minor cleanup work. 2021-09-18 22:55:31 +02:00
asuessenbach
dd1855a820 Add support for commands returning two values. 2021-09-14 15:38:35 +02:00
asuessenbach
48d6492647 Minor cleanup work. 2021-09-13 14:49:02 +02:00
asuessenbach
c13b8f56bf Refactor commands generation. 2021-09-06 14:38:17 +02:00
asuessenbach
9d7ade83f2 Minor cleanup work. 2021-08-05 17:28:06 +02:00
asuessenbach
584e7115e8 Rearrange handling of struct aliases. 2021-08-05 09:21:55 +02:00
asuessenbach
35a43611f8 Improved some checks on structures/aliases 2021-08-04 15:28:59 +02:00
asuessenbach
6bbd64aaa5 Minor cleanup work. 2021-08-04 13:34:08 +02:00
asuessenbach
5066b7b488 Minor cleanup work. 2021-08-02 10:17:22 +02:00
asuessenbach
9bd672bc89 Minor cleanup work. 2021-07-29 16:29:53 +02:00
asuessenbach
6f067eecac Filter constructors for unions with multiple elements of the same type. 2021-07-28 09:13:25 +02:00
asuessenbach
e014778535 Add support for functions returning two values, with multiple succes codes 2021-07-26 14:51:10 +02:00
asuessenbach
93cfc93fa6 Minor cleanup work. 2021-07-26 11:05:07 +02:00
asuessenbach
4a3c6d024d Gather commands and types per require-block in features and extensions 2021-07-21 17:09:21 +02:00
asuessenbach
c9955dc16f Correct platform check on required extensions. 2021-07-21 11:49:04 +02:00
asuessenbach
4190218813 Minor cleanup work. 2021-07-19 10:37:44 +02:00
asuessenbach
ff6985fd34 Minor cleanup work. 2021-07-11 00:10:25 +02:00
asuessenbach
a790cfecf2 Minor cleanup work. 2021-07-08 17:30:53 +02:00
asuessenbach
f2525a2cce Minor cleanup work. 2021-07-08 09:36:02 +02:00
asuessenbach
7a534998ba Improve command name determination of second level commands in RAII handle wrappers. 2021-07-07 09:03:54 +02:00
asuessenbach
6d1d53c857 Minor cleanup work. 2021-07-05 09:29:12 +02:00
asuessenbach
b54860a92b Add support of attribute "protect" for enum values, third part 2021-06-30 15:10:17 +02:00
Andreas Süßenbach
4dcc1f06b4
Merge pull request #1006 from asuessenbach/protect
Add support of attribute "protect" for enum values.
2021-06-30 10:50:32 +02:00
asuessenbach
7e37cfb5d7 Add support of attribute "protect" for enum values. 2021-06-30 09:58:58 +02:00
asuessenbach
5c3e410592 Add prefix and postfix support for basetype. 2021-06-30 08:56:05 +02:00
asuessenbach
d486ccccf1 Minor cleanup work 2021-06-28 09:26:42 +02:00
asuessenbach
00485f94bf Improve filtering of aliases of enum values that map to the very same vk:: enum value. 2021-06-24 11:09:49 +02:00
asuessenbach
cb87348898 Move check on structureAlias from reading to final correctness check. 2021-06-22 10:15:24 +02:00
asuessenbach
de9688cce6 Minor cleanup work. 2021-06-21 09:29:48 +02:00
asuessenbach
1ad4a23234 Minor cleanup work 2021-06-14 09:26:26 +02:00
asuessenbach
b0bf764266 Re-arranged handling of FlagBits not listed as required for a Flags. 2021-06-08 11:08:11 +02:00
asuessenbach
d795efa30a Minor cleanup work. 2021-06-07 10:26:00 +02:00
asuessenbach
f2d623cb7a Correct postfix tag of some enums. 2021-06-01 19:48:06 +02:00
Andreas Süßenbach
f5307046ae
Merge pull request #976 from asuessenbach/check
Turn an assertion on identifying a command into a check.
2021-06-01 08:13:20 +02:00
asuessenbach
5834d61145 Turn an assertion on identifying a command into a check.
+ some minor cleanup work.
2021-05-31 18:12:24 +02:00
asuessenbach
54b363320a Adjustments in AppVeyor build. 2021-05-31 17:46:07 +02:00
asuessenbach
d0fa2d4247 Reorder member functions by features and extensions. 2021-05-26 09:59:30 +02:00
asuessenbach
3922b25e9f Add check for multiple listing of types in a feature. 2021-05-06 10:41:57 +02:00
asuessenbach
e370ab5178 Move check on known enum alias value from readEnum to final checkCorrectness. 2021-05-04 17:08:24 +02:00
asuessenbach
7e0c9d16e8 Reorder bitmasks by features and extensions. 2021-05-03 09:22:47 +02:00
asuessenbach
9450883e0e Reorder enums by features and extensions. 2021-04-29 16:23:21 +02:00
asuessenbach
59165f1383 Simplified handling of alias commands 2021-04-28 13:35:14 +02:00
asuessenbach
e47c3c8b84 Reorder commands in DispatchLoaderStatic. 2021-04-28 08:17:11 +02:00
asuessenbach
89df7a1a7b Add check on structures never listed as required in any feature or extension. 2021-04-27 09:06:55 +02:00
asuessenbach
aca79e075d Refactor command generation logic. 2021-04-19 15:57:23 +02:00
asuessenbach
d9bb97d9ec Correct enum values for AccessFlagBits2KHR and PipelineStageFlagBits2KHR.
All those values erroneously started with "e2", instead of just "e".
2021-04-13 12:25:10 +02:00
asuessenbach
7f01d662de Replace dispatcher in vk::rai::Context by helper class vk::raii::ContextDispatcher 2021-04-12 16:17:22 +02:00
asuessenbach
352dfbf430 Add support for functions with a new parameter pattern. 2021-04-12 12:38:04 +02:00
asuessenbach
5e2edc10e0 Reduce parents of a handle from a vector to a single element 2021-03-29 10:11:19 +02:00
asuessenbach
7cae06b5bc Introduce support of a function with multiple success codes, returning two values, and non-zero error codes. 2021-03-10 17:03:47 +01:00
Yiwei Zhang
238093f1c6 Fix enum array initializer using enum constant 2021-03-09 10:12:24 +00:00
asuessenbach
7888f82bda Add support for functions getting a value and returning a VkBool32. 2021-02-24 15:47:30 +01:00
asuessenbach
2cb1c19c7f Introduce raii-compliant handle wrapper classes. 2021-02-22 16:19:12 +01:00
asuessenbach
0441b87c6c Add support for bitmask attribute "bitvalues" and enum attribute "bitwidth". 2021-02-10 13:47:13 +01:00
asuessenbach
3c7123f506 Add platform protection on enum value level. 2021-01-25 19:52:54 +01:00
asuessenbach
db7e75bf06 Remove error checks on unknown enums for disabled extensions. 2021-01-21 22:33:36 +01:00
asuessenbach
0d9f2fb882 Add support for functions getting two values with more than one allowed success code. 2021-01-21 18:11:51 +01:00
Markus Tavenrath
160dc916f9 Change structure member sType to non-const to allow default assignment operator. Make copy constructor and copy assignment default. The latter is required for C++20 designated initializers. Delegate the constructor from C-type to the copy constructor by casting rhs accordingly. Fix warnings on gcc/clang. 2021-01-18 12:25:50 +01:00
asuessenbach
45e06d1753 Special handling for detecting mutual exclusive len usage on structures. 2020-12-14 16:18:23 +01:00
asuessenbach
4bc8906990 Make structure information "obsolete" a vector of bool.
+ remove an obsolete assertion
2020-12-10 11:12:55 +01:00
asuessenbach
40bc006527 Update to VK_HEADER_VERSION 163. 2020-12-01 10:09:03 +01:00
asuessenbach
16ace53e02 Add support for functions that enumerate chained structures. 2020-11-17 09:51:55 +01:00
asuessenbach
864d1854fc Cleanup on call arguments construction. 2020-11-04 10:26:39 +01:00
Andreas Süßenbach
a5b62787fe
Merge pull request #815 from asuessenbach/159
Update to VK_HEADER_VERSION 159.
2020-11-02 17:15:18 +01:00
asuessenbach
8a53e8da06 Update to VK_HEADER_VERSION 159. 2020-11-02 15:15:35 +01:00
asuessenbach
2a700aaa74 Removed default arguments from standard versions of functions, and the shortened function versions of destroy* and free*
This is needed to prevent compiler ambiguities!
2020-11-02 11:51:07 +01:00
asuessenbach
50cc580941 Adding support for functions with a const pointer input with its len specified by a structure member. 2020-10-28 10:18:05 +01:00
asuessenbach
987d6a4d98 Final cleanup on command generation refactoring. 2020-10-26 16:16:48 +01:00
asuessenbach
e4f8003dbd Refactor commands handling pointers to alien data types
+ some dead code elimination
2020-10-25 22:00:53 +01:00
asuessenbach
e973e585c7 Refactor commands enumerating a vector of chained structures. 2020-10-23 22:10:33 +02:00
asuessenbach
5168ba6a11 Refactor command that returns a vector of data and potentially gets vector(s) of data as input. 2020-10-21 16:25:12 +02:00
asuessenbach
75ce35813d Refactor commands enumerating some non-handle, non-StructureChain data type. 2020-10-20 14:24:39 +02:00
asuessenbach
2b47c6f9e5 Refactor command that returns a vector of values and a single value. 2020-10-19 10:15:50 +02:00
asuessenbach
1a851d00af Refactor commands returning some value 2020-10-15 14:50:52 +02:00
asuessenbach
74498b2b9e Refactor commands returning a StructureChain and a Result. 2020-10-15 09:09:35 +02:00
asuessenbach
85e17d053b Refactor commands potentially returning a StructureChain. 2020-10-14 12:24:02 +02:00
asuessenbach
28cc3e6ae7 Refactor simple functions returning some value. 2020-10-13 14:39:12 +02:00
asuessenbach
1050424e85 Refactor functions returning a vector of handles, that might as well be just one. 2020-10-12 17:06:55 +02:00
asuessenbach
d1c03d5ba8 Refactor command consuming two vectors. 2020-10-08 17:05:14 +02:00
asuessenbach
45c187997b Refactor functions returning a vector of handles. 2020-10-08 11:44:50 +02:00
asuessenbach
9dec09ac6e Refactor handle getting functions 2020-10-07 11:54:52 +02:00
asuessenbach
b8b620b118 Refactor command classification code. 2020-10-06 09:54:18 +02:00
asuessenbach
87fc3571c6 Refactor simple functions getting a single value 2020-10-05 15:55:13 +02:00
asuessenbach
152353da3e Correct usage of noexcept on functions that need to check vector sizes. 2020-09-30 10:13:51 +02:00
asuessenbach
8219ca081d Refactor generation of simple commands with up to one vector parameter 2020-09-29 12:21:27 +02:00
asuessenbach
b6e6294fb9 Refactor function generation of void-functions enumerating a single vector of data. 2020-09-28 16:34:50 +02:00
asuessenbach
865069ccc3 correct value-check of parameters
+ add missing array sizes for parameters
2020-09-25 23:45:55 +02:00
asuessenbach
1f31648973 Refactor some trivial functions 2020-09-25 09:02:37 +02:00
asuessenbach
0d02918ce8 refactor more functions into the simple void case. 2020-09-24 11:47:18 +02:00
asuessenbach
4d21e2b210 refactor command generation of two-vector getting functions returning void 2020-09-23 09:52:21 +02:00
asuessenbach
5f5ce584ac refactor generation of trivial void functions 2020-09-22 10:22:19 +02:00
asuessenbach
542d2903f4 refactor generation of simple void-functions 2020-09-21 23:18:24 +02:00
asuessenbach
860c2b1d4b refactored generation of simple commands 2020-09-21 12:26:54 +02:00
asuessenbach
d6dfdb547e Correct version of two-step function returning two vectors of data
+ mark wrong version as deprecated (C++14)
2020-09-15 22:54:44 +02:00
asuessenbach
77b401d4a9 correct enhanced version of vkGetQueryPoolResults
- mark wrong version as deprecated (C++14)
- introduce new version returning ResultValue<vector<T,Allocator>>
- introduce new singular version returning ResultValue<T>
2020-09-03 14:20:32 +02:00
asuessenbach
0db791c687 Special handling for commands that get a size and a void-pointer to write data into
- marked previous function that got an ArrayProxy as deprecated (C++14)
- introduce a new function returning a std::vector of the given size
- introduce a new function returning a single value
2020-09-02 15:00:06 +02:00
asuessenbach
2af32d03e0 [DispatchLoaderDynamic] get aliases of functions if getting the function pointer failed 2020-08-19 11:54:25 +02:00
asuessenbach
03eb851f81 Improve handling of local Variables in enhanced simple functions. 2020-08-17 10:21:39 +02:00