Commit Graph

941 Commits

Author SHA1 Message Date
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
asuessenbach
02cd5ee1c9 Combine two types of commands into one generation function. 2022-03-02 17:57:36 +01:00
asuessenbach
ffead3984d Add some support of attribute "altlen" on command parameters. 2022-03-02 09:51:12 +01:00
asuessenbach
eb9aa3d948 Add support of functions getting a pointer to void. 2022-03-01 09:21:33 +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
1c39502170 Extract trait functions on vk::Format into the additional header vulkan_format_traits.hpp. 2022-02-21 10:11:25 +01:00
asuessenbach
3e1e23914e Hide functions reflect() behind VULKAN_HPP_USE_REFLECT. 2022-02-17 09:53:32 +01:00
Andreas Süßenbach
12dac7ffaa
Merge pull request #1208 from asuessenbach/vector
Introduce explicit default construction on nullptr_t for vector-based raii-classes.
2022-02-16 14:08:24 +01:00
asuessenbach
782c4aa46c Introduce explicit default construction on nullptr_t for vector-based raii-classes. 2022-02-16 09:51:18 +01:00
asuessenbach
815afe1f70 Introduce trait function componentName() and componentNumericFormat() on vk::Format. 2022-02-15 14:47:38 +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
1b12dd8cbb Enclose "free" in parenthesis to prevent interference with MSVC's debug free 2022-02-10 09:49:24 +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
7135c7e1a3 Remove the 'allFlags' from the general FlagTraits struct to catch unintentional usage with something different than a supported FlagBitsType. 2022-02-03 17:34:43 +01:00
Andreas Süßenbach
bac1a58f80
Merge pull request #1188 from asuessenbach/function
Generalize command generation for a specific type of commands
2022-02-02 15:34:40 +01:00
Andreas Süßenbach
5156ca24af
Merge pull request #1186 from sugoi1/master
Fix 'missing braces around initializer' warnings in vulkan_enums.hpp
2022-02-02 12:11:04 +01:00
asuessenbach
4ebd8a8b2c Generalize command generation for a specific type of commands
Commands returning some value (not a VkResult), that get no non-const pointers, no input vectors, but zero or more const-pointers of any type are generalized into one function.
2022-02-02 10:46:38 +01:00
sugoi1
4ecb073416 Update VulkanHppGenerator.cpp 2022-01-28 11:06:17 -05:00
asuessenbach
7e1161da9b Generalize command generation for a specific type of commands
Commands returning void, that are supposed to enumerate one vector of data is generalized to also support void-data by a templated type.
2022-01-26 14:24:06 +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
a5070c4094
Merge pull request #1170 from amaiorano/fix-hash-null-terminated-strings
Fix std::hash specializations for null-terminated strings
2022-01-04 12:08:35 +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
Antonio Maiorano
e84bb64746 Fix std::hash specializations for null-terminated strings
Instead of hashing the pointer, hash the string contents.

Fixes: https://github.com/KhronosGroup/Vulkan-Hpp/issues/1169
2022-01-03 14:26:34 -05: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
78379f769d Check for correct formats specifications only if formats are specified. 2021-12-08 08:42:04 +01:00
asuessenbach
6fdeaa8001 Make struct cast operators explicit. 2021-12-07 10:39:23 +01:00
asuessenbach
55651f5120 Downgrade <formats> tag from required to optional. 2021-12-06 17:18:42 +01:00
asuessenbach
3515c720fc Introduce support of std::hash for vk-structures. 2021-12-02 23:28:26 +01:00
asuessenbach
e9b463000e Enable check on planeIndex in format components 2021-12-02 12:27:34 +01:00
asuessenbach
5d5182ce70 Introduce a couple of trait functions on vk::Format. 2021-11-29 10:00:19 +01:00
asuessenbach
3abe5cb0df Extended checks on VkFormat. 2021-11-25 10:23:19 +01:00
Andreas Süßenbach
736b33c650
Merge pull request #1150 from asuessenbach/fix
Filter out to get vkGetInstanceProcAddr in vk::raii::InstanceDispatcher
2021-11-24 12:25:42 +01:00
asuessenbach
8e3a52edc0 Filter out to get vkGetInstanceProcAddr in vk::raii::InstanceDispatcher
Since Vulkan 1.2 this can return nullptr!
2021-11-24 08:42:52 +01:00
asuessenbach
976debbd80 Add support for new elements <formats> in vk.xml. 2021-11-23 13:23:14 +01:00
asuessenbach
0c311a7589 Adjust comments in ArrayProxy and ArrayProxyNoTemporaries tests. 2021-11-22 15:11:03 +01:00
Niels Möller
f500c42658 Generalize ArrayProxy and ArrayProxyNoTemporaries constructors
Add new constructors that accept any vector-like type (with
compatible .data() and .size() methods). Replaces the more specific
constructors accepting std::array, std::vector and std::span.
2021-11-17 14:26:17 +01:00
asuessenbach
a3807fb92b Use VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL with vk::raii::Context
-> vk::raii::Context constructor now either gets
     no argument as before, loading vkGetInstanceProcAddr via an internal DynamicLoader;
     or a PFN_vkGetInstanceProcAddr, using that to fill the dispatcher
+ changed the sample RAII_Samples/RayTracing to work with VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL defined to be zero
+ fixed the missing destructor call in most of the move assignments of the vk::raii classes
2021-11-16 18:07:19 +01:00
asuessenbach
bf73d74aa9 Remove deprecated versions of function PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR 2021-11-16 13:29:50 +01:00
Andreas Süßenbach
6d5e90ec59
Merge pull request #1140 from asuessenbach/fix
Fix vector constructor argument in generateCommandResultEnumerateChained()
2021-11-16 11:46:08 +01:00
Andreas Süßenbach
9b94931267
Merge pull request #1137 from asuessenbach/link
Fix wrong linking in copied StructureChains with unlinked elements
2021-11-16 08:40:42 +01:00
asuessenbach
bb7e7b3089 Fix vector constructor argument in generateCommandResultEnumerateChained() 2021-11-16 08:38:51 +01:00
asuessenbach
75bf4a0f93 Fix allocator name in generateCommandResultEnumerateChained()
+ correctly format vulkan_structs.hpp
2021-11-15 23:25:42 +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
5009b39f57 Fix wrong linking in copied StructureChains with unlinked elements 2021-11-15 17:50:18 +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
Andreas Süßenbach
f352a3efd8
Merge pull request #1128 from asuessenbach/version
Check for "VK_API_VERSION_m_n" or "VK_VERSION_m_n" in SPIRVCapabilities and SPIRVExtensions
2021-11-09 11:04:29 +01:00
asuessenbach
08bbbe892f Check for "VK_API_VERSION_m_n" or "VK_VERSION_m_n" in SPIRVCapabilities and SPIRVExtensions 2021-11-09 08:57:08 +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
533129308a Change m_dispatcher in vk::raii::Context, vk::raii::Instance and vk::raii::Device from member to std::unique_ptr<> 2021-11-04 13:53:43 +01:00
asuessenbach
c2a3cfad1a Extend enum type search in readEnums. 2021-11-02 18:55:43 +01:00
asuessenbach
c7838676bd Minor cleanup work. 2021-11-02 09:31:32 +01:00
Andreas Süßenbach
95fbfbe36d
Merge pull request #1115 from asuessenbach/throw
Change function throwResultException from static to anonymous namespace
2021-10-25 17:57:45 +02:00
asuessenbach
c5218f5a82 Change function throwResultException from static to anonymous namespace 2021-10-25 15:44:42 +02:00
asuessenbach
e725ff31bd Refactor parent member of the vk::raii classes. 2021-10-25 13:37:43 +02:00
Andreas Süßenbach
7361d443a3
Merge pull request #1109 from dneto0/dont-crash-gipa
Don't overwrite vkGetInstanceProcAddress
2021-10-25 10:47:48 +02:00
asuessenbach
714b953e51 Minor cleanup work. 2021-10-25 09:30:04 +02:00
David Neto
935e5e68fa Don't overwrite vkGetInstanceProcAddress
The vk::DispatchLoaderDynamic::init(vk::VkInstance) method should note
use vkGetInstanceProcAddr to overwrite vkGetInstanceProcAddr itself.

vkGetInstanceProcAddr( a_valid_instance, "vkGetInstanceProcAddr" ) is
required to return NULL.

Fixes: 1108
2021-10-22 04:03:31 -04: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
8d23f0ed8c Fix handling of "void *" in generateCommandResultGetValue 2021-10-14 13:44:44 +02:00
asuessenbach
c3f32b8538 Introduce constructors on nullptr_t for the RAII handle classes. 2021-10-11 17:49:13 +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
bc942e42da Add 'inline' to static getDispatchLoaderStatic() 2021-10-07 10:22:19 +02:00
Andreas Süßenbach
0799e35086
Merge pull request #1093 from asuessenbach/disabled
Improve handling of disabled extensions.
2021-10-06 15:30:03 +02:00
asuessenbach
fadacdf87b Improve handling of disabled extensions. 2021-10-06 14:00:40 +02:00
asuessenbach
6db58639f8 Add support of functions taking and returning a vector of data 2021-10-06 12:51:26 +02:00
Andreas Süßenbach
b4db8a9d5a
Merge pull request #1089 from asuessenbach/cleanup
Some more code cleanup
2021-10-04 13:57:52 +02:00
asuessenbach
0122305ce8 Some more code cleanup 2021-10-04 12:10:04 +02:00
asuessenbach
cc3549ec58 Change 32-bit test in ArrayWrapper1D to using VK_USE_64_BIT_PTR_DEFINES. 2021-10-04 11:08:19 +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
025a4f5751 Remove wrong 'typename' from commands returning two values. 2021-09-14 17:47:39 +02:00
asuessenbach
dd1855a820 Add support for commands returning two values. 2021-09-14 15:38:35 +02:00
asuessenbach
f17ff86a97 Remove restriction on get-commands to start with 'vkGet' 2021-09-14 08:37:27 +02:00
asuessenbach
48d6492647 Minor cleanup work. 2021-09-13 14:49:02 +02:00
asuessenbach
1415ec96d9 Removed check on missing enum values as selections of a union, which is allowed. 2021-09-13 09:51:14 +02:00
asuessenbach
13bdb2ff69 Introducde getDispatchLoaderStatic() to prevent dangling pointers in debug builds 2021-09-08 13:38:56 +02:00
asuessenbach
dea1345852 Introduce VULKAN_HPP_STATIC_ASSERT. 2021-09-07 13:47:18 +02:00
asuessenbach
c13b8f56bf Refactor commands generation. 2021-09-06 14:38:17 +02:00
asuessenbach
de750926dd Downgrade attribute "extends" of enum alias elements from required to optional. 2021-09-06 09:18:28 +02:00
asuessenbach
b563641fa6 Remove constexpr specifier from defaulted struct assignment operators.
Those operators are implicitly declared as constexpr, if they are constexpr-compatible.
2021-09-01 10:02:25 +02:00
asuessenbach
d645cbb056 Introduce NativeType to get the C-type from the corresponding Cpp-type.
This name is defined for Handles, Structures, and Unions.
2021-08-31 14:58:34 +02:00
asuessenbach
c71b0e5100 Fix extension name used to protect types. 2021-08-31 11:57:48 +02:00
asuessenbach
2c982ce501 Fix extension name used to check consistency of enum values. 2021-08-31 10:36:53 +02:00
asuessenbach
303f044d43 Update to VK_HEADER_VERSION 190. 2021-08-30 16:03:05 +02:00
Andreas Süßenbach
7f0f77749d
Merge pull request #1048 from asuessenbach/build
Resolve two release build issues.
2021-08-09 13:51:31 +02:00
Andreas Süßenbach
07a99a0d67
Merge pull request #1047 from asuessenbach/altlen
Use "altlen" attribute instead of "len", if present.
2021-08-09 11:58:35 +02:00
asuessenbach
03bf775566 Resolve two release build issues. 2021-08-09 11:39:35 +02:00
asuessenbach
e03d7d093d Use "altlen" attribute instead of "len", if present. 2021-08-09 11:02:35 +02:00
asuessenbach
9d7ade83f2 Minor cleanup work. 2021-08-05 17:28:06 +02:00
asuessenbach
af80b7aee8 Introduce constructors of ArrayProxy and ArrayProxyNoTemporaries from std::span (C++20) 2021-08-05 13:37:49 +02:00
asuessenbach
584e7115e8 Rearrange handling of struct aliases. 2021-08-05 09:21:55 +02:00
asuessenbach
5532ac3b67 move checks on StructureAliases before checks on Structures. 2021-08-04 17:17:27 +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
6e1a3de4d2 Update to VK_HEADER_VERSION 187 2021-08-04 10:45:53 +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
3247dce132 Change dispatcher default argument in ObjectDestroy, ObjectFree, ObjectRelease, and PoolFree constructor VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT 2021-07-27 14:33:25 +02:00
asuessenbach
c3da5fa53d Add check for BitFlags that are required by a Flags bitmask but not listed with any feature or extension. 2021-07-27 10:07:02 +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
5117c83ad9 Add placeholder members to Dispatchers to keep the relative position of other members constant when compiling for different platforms 2021-07-22 12:00:44 +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
Andreas Süßenbach
7255bfef39
Merge pull request #1020 from asuessenbach/versioncheck
Introduce version check in function wrappers
2021-07-21 08:19:23 +02:00
asuessenbach
987bd214e5 Introduce version check in function wrappers
The assertions fire when the dispatcher and the actual function call is compiled with different VK_HEADER_VERSION.
2021-07-20 15:38:54 +02:00
asuessenbach
488780dfd4 Introduce struct hash<vk::Flags<BitType>>
Allows the use of any vk::*Flags type as the key in a std::unordered_map
2021-07-19 12:12:12 +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
0bdb0cdcab Make functions returning a single value of type void (getting a void* as argument) a templated function. 2021-07-07 10:36:13 +02:00
asuessenbach
7a534998ba Improve command name determination of second level commands in RAII handle wrappers. 2021-07-07 09:03:54 +02:00
Andreas Süßenbach
793f70dbad
Merge pull request #1010 from hannes-harnisch/master
Adding configuration option to disable struct/union setters and union constructors
2021-07-06 14:25:51 +02:00
Hannes Harnisch
9df9d582f5 Adding ifdefs for NO_STRUCT_SETTERS 2021-07-05 16:14:43 +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
asuessenbach
3b46f5c497 Add support of attribute "protect" for enum values, second part 2021-06-30 11:14:15 +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
6fa59ce5af Improve handling of struct members of type pointer-to-pointer-to-something 2021-06-24 14:24:49 +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
45bad15ee5 Generalize check on enum alias chaining. 2021-06-23 17:15:33 +02:00
Andreas Süßenbach
f7c7f821a4
Merge pull request #996 from asuessenbach/bool
Introduce operator bool() and operator!() on vk::raii handle wrapper classes
2021-06-23 13:21:53 +02:00
asuessenbach
71e67fa32d Introduce operator bool() and operator!() on vk::raii handle wrapper classes
Only if VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS is defined, as otherwise those checks are not meaningful.
2021-06-23 11:37:51 +02:00
asuessenbach
e05bea9f13 Add support of attribute "values" for struct members of type uint32_t. 2021-06-23 10:59:55 +02:00
Andreas Süßenbach
da2ecae452
Merge pull request #993 from asuessenbach/structureAlias
Move check on structureAlias from reading to final correctness check.
2021-06-22 11:49:45 +02:00
asuessenbach
cb87348898 Move check on structureAlias from reading to final correctness check. 2021-06-22 10:15:24 +02:00
asuessenbach
9c0c2095d7 Update to VK_HEADER_VERSION 182. 2021-06-22 09:40:12 +02:00
asuessenbach
de9688cce6 Minor cleanup work. 2021-06-21 09:29:48 +02:00
asuessenbach
9fbd3e3552 Introduce VULKAN_HPP_RAII_ENABLE_DEFAULT_CONSTRUCTORS 2021-06-17 17:11:12 +02:00
asuessenbach
74cb47eb82 Split vulkan.hpp into multiple sub-headers 2021-06-14 15:35:34 +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
Andreas Süßenbach
d3888a84f1
Merge pull request #981 from asuessenbach/cleanup
Minor cleanup work.
2021-06-07 15:18:58 +02:00
asuessenbach
d795efa30a Minor cleanup work. 2021-06-07 10:26:00 +02:00