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
asuessenbach
99f990afa1
Extend template argument list for functions returning a std::vector<Stuff> to help compilers detecting the correct function.
...
+ change the order of Allocator and Dispatch template arguments for functions returning a std::vector<UniqueStuff>, as the Allocator needs to use the Dispatch in those cases!
2020-07-23 18:14:05 +02:00
asuessenbach
0ff1e674ee
Reordered listing of structures and handles
...
-> no need to forward declare the structures any more
2020-07-23 10:02:16 +02:00
asuessenbach
abce7c90cd
Remove (most of) the special handling of structure members named "sType", replace it by handling of structure members with a "values" attribute with a single element.
2020-07-13 11:55:16 +02:00
asuessenbach
d86303c0e4
Introduce structure constructors using ArrayProxyNoTemporaries
2020-07-09 12:03:03 +02:00
asuessenbach
b06457a74b
Simplified struct setter functions on a union.
2020-07-06 14:52:22 +02:00
asuessenbach
8ddea43942
Introduce helper class ArrayProxyNoTemporaries and structure setter functions using that.
...
Resolves #62 !
2020-07-01 16:39:25 +02:00
asuessenbach
db58507063
Introduce VULKAN_HPP_NO_STRUCT_CONSTRUCTORS so support designated initializers.
...
You have to define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS to remove all the struct constructors from vulkan.hpp, so that you can use designated initializers on them.
Of course, makes only sense with C++20.
2020-06-24 11:28:43 +02:00
asuessenbach
f87c9330e7
Extend check against protect attribute for types that are required by multiple extensions.
2020-06-15 10:09:07 +02:00
asuessenbach
381494ed3f
Update and adjustments to VK_VULKAN_HEADER 143
2020-06-15 08:03:17 +02:00
asuessenbach
8958396a0c
Add support for "allowduplicate" attribute on chainable structures.
2020-05-25 09:36:20 +02:00
asuessenbach
cc6162991a
Improve extension protection string handling.
2020-05-19 14:34:41 +02:00
asuessenbach
94888c9959
Correct handling of enum aliases
2020-04-30 11:30:17 +02:00
asuessenbach
c6f4dfb79b
Correct default initializer for array of enums.
2020-04-29 11:45:10 +02:00
asuessenbach
89190683c8
Add checks on member sType of structs:
...
- only members named <sType> are supposed to have a <values> attribute
- no <values> attribute is allowed to occur more than once.
2020-04-29 09:04:21 +02:00
asuessenbach
c7c375eb98
Unify type traits handling of Handles, Structures, and IndexTypes.
2020-04-24 09:57:37 +02:00
asuessenbach
f5e59484a6
Introduce usage of clang-format to format vulkan.hpp and the other sources.
2020-04-23 10:55:02 +02:00
asuessenbach
5cb6084118
Adjust structure and union constructors and setter functions to correctly handle sType of a member of that structure/union.
2020-04-21 08:49:17 +02:00
asuessenbach
cc77b67bb8
Provide std::hash<vk::HandleType> to make handles hashable.
2020-04-06 10:41:42 +02:00
asuessenbach
732274919b
Correct actual function called by aliased member functions
2020-03-25 17:13:03 +01:00
asuessenbach
0ea8a527ba
Introduce ArrayWrapper?D, replacing ConstExpression?DArrayCopy
...
+ no explicit copy constructor of structs needed any more
+ removed assignment operator of structs that don't hold a const sType member (for those, we still need the assignment operator!)
+ simplified operator==() of structs (pre C++20)
+ resolved some 32bit warnings
2020-03-25 12:35:35 +01:00